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