felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Schurins (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-5131) UnsupportedOperationException when embedding felix in WebSphere
Date Tue, 08 Mar 2016 08:03:40 GMT

    [ https://issues.apache.org/jira/browse/FELIX-5131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15184622#comment-15184622
] 

Thomas Schurins commented on FELIX-5131:
----------------------------------------

Great - can you at least tell in which versions it is corrected?

> 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: framework-5.2.0, resolver-1.6.0
>            Reporter: Thomas Schurins
>         Attachments: FELIX-5131.patch
>
>
> 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)

Mime
View raw message