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: [email protected]
For additional commands, e-mail: [email protected]