You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/12/05 00:09:35 UTC
svn commit: r1210272 - in
/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb:
cdi/ThreadSingletonServiceImpl.java util/classloader/MultipleClassLoader.java
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;
}
}