You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@aries.apache.org by "Roland Huss (JIRA)" <ji...@apache.org> on 2010/02/17 20:30:27 UTC

[jira] Updated: (ARIES-178) PackageMBean.listPackages() raises an exception for certain bundles in Felix 2.0.3

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

Roland Huss updated ARIES-178:
------------------------------

    Attachment: patch.txt

> 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.