Adam Bird created KARAF-2896:
--------------------------------
Summary: RepositoryImpl load method incorrectly populates "features" list
Key: KARAF-2896
URL: https://issues.apache.org/jira/browse/KARAF-2896
Project: Karaf
Issue Type: Bug
Affects Versions: 2.3.3
Reporter: Adam Bird
The RepositoryImpl incorrectly populates the RepositoryImpl's Features list with different
FeatureImpl references than it populates FeatureImpl dependency lists with. Given a features.xml
file that contains two features, FeatureA and FeatureB, where FeatureA depends on FeatureB,
the following scenario is encountered in the RepositoryImpl's load() method (note that line
numbers are based on Karaf 2.3.3 - this may not be an issue in 3.x given JAXB is now used):
* Line 127: Encounters node for FeatureA and creates FeatureImplA
* Line 165/167: Upon discovering that FeatureA is dependent on FeatureB, creates FeatureImplB
and adds it to FeatureImplA's dependencies list
* Line 226: Adds FeatureImplA to the RepositoryImpl's features list
LOOP
* Line 127: Encounters node that defines FeatureB, but creates a new FeatureImpl instance,
FeatureImplC, rather than using a reference to FeatureImplB
* Line 226: Adds FeatureImplC to the RepositoryImpl's features list
As a result calling FeatureImplA.getDependencies() will return FeatureImplB and calling RepositoryImpl.getFeatures()
will return FeatureImplC, even though both calls should return a reference to the same FeatureImpl
instance.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
|