You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/02/07 09:34:17 UTC

svn commit: r1443350 - /tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java

Author: markt
Date: Thu Feb  7 08:34:16 2013
New Revision: 1443350

URL: http://svn.apache.org/viewvc?rev=1443350&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54534
Ensure that when loading Servlet instances the correct class loader is used.

Modified:
    tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java?rev=1443350&r1=1443349&r2=1443350&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardWrapper.java Thu Feb  7 08:34:16 2013
@@ -553,13 +553,20 @@ public class StandardWrapper extends Con
 
         // The logic to determine this safely is more complex than one might
         // expect. allocate() already has the necessary logic so re-use it.
+        // Make sure the Servlet is loaded with the right class loader
+        ClassLoader old = Thread.currentThread().getContextClassLoader();
+        ClassLoader webappClassLoader =
+                ((Context) getParent()).getLoader().getClassLoader();
         try {
+            Thread.currentThread().setContextClassLoader(webappClassLoader);
             Servlet s = allocate();
             deallocate(s);
         } catch (Throwable t) {
             ExceptionUtils.handleThrowable(t);
+        } finally {
+            Thread.currentThread().setContextClassLoader(old);
         }
-        return (singleThreadModel);
+        return singleThreadModel;
 
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org