Author: rmannibucau
Date: Sun Dec 4 23:09:34 2011
New Revision: 1210272
URL: http://svn.apache.org/viewvc?rev=1210272&view=rev
Log:
if there is only one classloader (ie we are not in OSGi) simply use the current
classloader to get OWB services
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/MultipleClassLoader.java
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java?rev=1210272&r1=1210271&r2=1210272&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
Sun Dec 4 23:09:34 2011
@@ -89,7 +89,13 @@ public class ThreadSingletonServiceImpl
optional(services, ConversationService.class,
"org.apache.webbeans.jsf.DefaultConversationService");
ClassLoader oldClassLoader =
Thread.currentThread().getContextClassLoader();
- Thread.currentThread().setContextClassLoader(new
MultipleClassLoader(oldClassLoader,
ThreadSingletonServiceImpl.class.getClassLoader()));
+ ClassLoader cl;
+ if (oldClassLoader !=
ThreadSingletonServiceImpl.class.getClassLoader()) {
+ cl = new MultipleClassLoader(oldClassLoader,
ThreadSingletonServiceImpl.class.getClassLoader());
+ } else {
+ cl = oldClassLoader;
+ }
+ Thread.currentThread().setContextClassLoader(cl);
WebBeansContext webBeansContext;
Object old = null;
try {
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/MultipleClassLoader.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/MultipleClassLoader.java?rev=1210272&r1=1210271&r2=1210272&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/MultipleClassLoader.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/MultipleClassLoader.java
Sun Dec 4 23:09:34 2011
@@ -27,6 +27,11 @@ public class MultipleClassLoader extends
return loadClassSecond(name);
}
throw ncdfe;
+ } catch (LinkageError le) {
+ if (second != getParent()) {
+ return loadClassSecond(name);
+ }
+ throw le;
}
}