[ 
https://issues.apache.org/jira/browse/ARIES-178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12834995#action_12834995
 ] 

Adam Wojtuniak commented on ARIES-178:
--------------------------------------

Hi Roland

All the values in CompositeData need to be uinque so it's no harm to override 
equals and hashcode in PackageData.
Iam going to apply your patch in a couple minutes. I checked docs of 
PackageAdmin but there is nothing mentioned about
uniqeness of ExportedPackages. So probably there is no bug in Felix but you can 
check that on Felix mailing list.

Thanks for the patch.
Regards,
Adam 


> PackageMBean.listPackages() raises an exception for certain bundles in Felix 
> 2.0.3
> ----------------------------------------------------------------------------------
>
>                 Key: ARIES-178
>                 URL: https://issues.apache.org/jira/browse/ARIES-178
>             Project: Aries
>          Issue Type: Bug
>          Components: JMX
>    Affects Versions: Incubation
>            Reporter: Roland Huss
>         Attachments: patch.txt
>
>
> Using PackageStateMBean.listPackages() gives the following exception on Felix 
> 2.0.3 for certain bundles (here: spring-ws-core-1.5.9.jar)
> Caused by: javax.management.openmbean.KeyAlreadyExistsException: Argument 
> value's index, calculated according to this TabularData instance's 
> tabularType, already refers to a value in this table.
>         at 
> javax.management.openmbean.TabularDataSupport.checkValueAndIndex(TabularDataSupport.java:871)
>         at 
> javax.management.openmbean.TabularDataSupport.internalPut(TabularDataSupport.java:331)
>         at 
> javax.management.openmbean.TabularDataSupport.put(TabularDataSupport.java:323)
>         at 
> org.apache.aries.jmx.codec.PackageData.tableFrom(PackageData.java:142)
>         at 
> org.apache.aries.jmx.framework.PackageState.listPackages(PackageState.java:130)
>         ...
> The original reason for this is that Felix returns multiple identical 
> ExportedPackage when calling
> ExportedPackage[]  PackageAdmin.getExportedPackages(bundle)
> (in this example, org.springframework.ws.soap.addressing.server; 
> version=1.5.9 is given twice)
> I don't know whether this is allowed by the Spec (or is in fact a bug in 
> Felix), but Aries could be smarter here anyway.
> Since each ExportedPackage is wrapped in a PackageData for JMX-Export and 
> then added to a Set<PackageData> all
> what is needed to add appropriate equals() and hashCode() to PackageData to 
> make the set contain only PackageData
> with a unique index (NAME, VERSION, EXPORTING_BUNDLE) for the TabularData to 
> build up for the JMX return value.
> Please find attachted a patch to add equals() and hashCode() to PackageData.
> My question though is, whether this an allowed behaviour of Felix to return 
> same ExportedPackage objects multiple times 
> in getExportedPackages() (so that in case I could rise an issue for Felix as 
> well).  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to