[
https://issues.apache.org/jira/browse/ARIES-178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12835326#action_12835326
]
Alasdair Nottingham commented on ARIES-178:
-------------------------------------------
The OSGi spec allows you to export the same package multiple times.
I believe ARIES-146 is a dupe of this and it was found on equinox, so this
isn't felix specific if they really are dupes.
> 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.