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