Author: markt Date: Thu Feb 7 08:41:14 2013 New Revision: 1443352 URL: http://svn.apache.org/viewvc?rev=1443352&view=rev Log: Ensure that when loading Servlet instances the correct class loader is used.
Modified: tomcat/tc7.0.x/trunk/ (props changed) tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc7.0.x/trunk/ ------------------------------------------------------------------------------ Merged /tomcat/trunk:r1443350 Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java?rev=1443352&r1=1443351&r2=1443352&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardWrapper.java Thu Feb 7 08:41:14 2013 @@ -588,13 +588,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; } Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1443352&r1=1443351&r2=1443352&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Thu Feb 7 08:41:14 2013 @@ -53,7 +53,16 @@ They eventually become mixed with the numbered issues. (I.e., numbered issues to not "pop up" wrt. others). --> -<section name="Tomcat 7.0.36 (markt)"> +<section name="Tomcat 7.0.37 (markt)"> + <subsection name="Catalina"> + <changelog> + <bug>54534</bug>: Ensure that, if a call to + <code>StandardWrapper#isSingleThreadModel()</code> triggers the loading of + a Servlet, the correct class loader is used. (markt) + </changelog> + </subsection> +</section> +<section name="Tomcat 7.0.36 (markt)" rtext="not released"> <subsection name="Catalina"> <changelog> <fix> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org