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

Guillaume Nodet resolved SMX4NMR-97.
------------------------------------

    Resolution: Fixed

> The JBI components classloader sometime fails to load classes or resources
> --------------------------------------------------------------------------
>
>                 Key: SMX4NMR-97
>                 URL: https://issues.apache.org/activemq/browse/SMX4NMR-97
>             Project: ServiceMix NMR
>          Issue Type: Bug
>            Reporter: Guillaume Nodet
>            Assignee: Guillaume Nodet
>             Fix For: 1.0.0
>
>
> processstoreimp...@24390 daemon, priority=5, in group 'main', status: 
> 'RUNNING'
>          at 
> org.apache.felix.framework.URLHandlersBundleStreamHandler.openConnection(URLHandlersBundleStreamHandler.java:69)
>          at java.net.URL.openConnection(URL.java:943)
>          at 
> sun.net.www.protocol.jar.JarURLConnection.<init>(JarURLConnection.java:64)
>          at sun.net.www.protocol.jar.Handler.openConnection(Handler.java:24)
>          at java.net.URL.openConnection(URL.java:943)
>          at java.net.URL.openStream(URL.java:1,007)
>          at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:1,216)
>          at java.lang.Class.getResourceAsStream(Class.java:1,998)
>          at 
> org.apache.openjpa.conf.OpenJPAVersion.<clinit>(OpenJPAVersion.java:50)
>          at 
> org.apache.openjpa.kernel.AbstractBrokerFactory.getFactoryInitializationBanner(AbstractBrokerFactory.java:663)
>          at 
> org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:616)
>          at 
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
>          at 
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
>          at 
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
>          at 
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
>          at 
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
>          at 
> org.apache.ode.store.jpa.DbConfStoreConnectionFactory.getConnection(DbConfStoreConnectionFactory.java:49)
>          at 
> org.apache.ode.store.ProcessStoreImpl.getConnection(ProcessStoreImpl.java:549)
>          at 
> org.apache.ode.store.ProcessStoreImpl.access$300(ProcessStoreImpl.java:74)
>          at 
> org.apache.ode.store.ProcessStoreImpl$Callable.call(ProcessStoreImpl.java:698)
>          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
>          at java.util.concurrent.FutureTask.run(FutureTask.java:123)
>          at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>          at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>          at java.lang.Thread.run(Thread.java:613)
> The reason is that the jbi classloader is create with bundle urls
> pointing to the libraries embedded in the component.
> For example:
>    bundle://72.0:1/lib/openjpa-1.1.0.jar
> Those URLs are resolved correctly to locate resources, so we end up
> with urls like:
>    
> jar:bundle://72.0:1/lib/openjpa-1.1.0.jar!/org/apache/openjpa/kernel/localizer.properties
> Now, the problem is that they fail to be opened at the above point in
> the code.  THis is because Felix is trying to find on the stack trace
> a classloader which is of  type
> org.apache.felix.framework.searchpolicy.ContentClassLoader (in the
> URLHandlers#getFrameworkContext() method).  But there's none because
> all classes  are loaded from the JBI component classloader instead of
> a felix classloader in this case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to