[ 
https://issues.apache.org/jira/browse/ARIES-178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Adam Wojtuniak reassigned ARIES-178:
------------------------------------

    Assignee: Adam Wojtuniak

> 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
>            Assignee: Adam Wojtuniak
>         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