Author: rmannibucau
Date: Sun May  6 16:39:08 2012
New Revision: 1334683

URL: http://svn.apache.org/viewvc?rev=1334683&view=rev
Log:
using standardclassloader when deploying a webapp whatever the current 
classlaoder is

Modified:
    
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java

Modified: 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1334683&r1=1334682&r2=1334683&view=diff
==============================================================================
--- 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 (original)
+++ 
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
 Sun May  6 16:39:08 2012
@@ -36,6 +36,7 @@ import org.apache.catalina.deploy.Contex
 import org.apache.catalina.deploy.ContextResourceLink;
 import org.apache.catalina.deploy.ContextTransaction;
 import org.apache.catalina.deploy.NamingResources;
+import org.apache.catalina.loader.WebappClassLoader;
 import org.apache.catalina.startup.Constants;
 import org.apache.catalina.startup.ContextConfig;
 import org.apache.catalina.startup.HostConfig;
@@ -753,8 +754,22 @@ public class TomcatWebAppBuilder impleme
             Context openejbContext = getContainerSystem().getJNDIContext();
             openejbContext = (Context) openejbContext.lookup("openejb");
 
-            final Context root = (Context) 
ContextBindings.getClassLoader().lookup("");
-            final Context comp = (Context) 
ContextBindings.getClassLoader().lookup("comp"); // usually fails
+            final ClassLoader tccl = 
Thread.currentThread().getContextClassLoader();
+            // normal case = startup case use standardclassloader
+            // so simply reproduce it even is a method is called from another 
context.
+            // that said this code (try) shouldn't be useful anymore for 
tomcat 7
+            if (tccl instanceof WebappClassLoader) {
+                Thread.currentThread().setContextClassLoader(tccl.getParent());
+            }
+
+            final Context root;
+            final Context comp;
+            try {
+                root = (Context) ContextBindings.getClassLoader().lookup("");
+                comp = (Context) 
ContextBindings.getClassLoader().lookup("comp"); // usually fails
+            } finally {
+                Thread.currentThread().setContextClassLoader(tccl);
+            }
 
             // Context root = ncl.getNamingContext();
             // Context comp = (Context) root.lookup("comp");


Reply via email to