Thomas Schurins created FELIX-5131:
--------------------------------------
Summary: UnsupportedOperationException when embedding felix in
WebSphere
Key: FELIX-5131
URL: https://issues.apache.org/jira/browse/FELIX-5131
Project: Felix
Issue Type: Bug
Components: Framework, Resolver
Affects Versions: resolver-1.6.0, framework-5.2.0
Reporter: Thomas Schurins
Hello, we are embedding the OSGi framework in our application (creating the
framework , managing its export packages, contolling the bundles &c.). This
works great in a lot of enviroments, but not on WebSphere (using the IBM JDK):
{noformat}
java.lang.UnsupportedOperationException
at
org.apache.felix.resolver.util.CopyOnWriteList.listIterator(CopyOnWriteList.java:218)
at java.util.Collections.binarySearch(Collections.java:1551)
at
org.apache.felix.framework.ResolveContextImpl.insertHostedCapability(ResolveContextImpl.java:103)
at org.apache.felix.resolver.Candidates.prepare(Candidates.java:934)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:233)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:159)
at
org.apache.felix.framework.StatefulResolver.resolve(StatefulResolver.java:431)
at
org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4109)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2111)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1365)
at
org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.lang.Thread.run(Thread.java:790)
{noformat}
The problem seems to be that in the IBM JDK, the Collections.binarySearch
method directly uses the listIterator of the list if it is not a RandomAccess
list (while the oracle JDK doesn't).
A solution it to add the interface RandomAccess to the CopyOnWriteList class.
I've tested this locally and eveything runs fine.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)