Author: markt
Date: Tue Feb 23 23:44:21 2010
New Revision: 915592
URL: http://svn.apache.org/viewvc?rev=915592&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48694
Avoid potential deadlock in WebappClassLoader
Modified:
tomcat/tc6.0.x/trunk/STATUS.txt
tomcat/tc6.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=915592&r1=915591&r2=915592&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Tue Feb 23 23:44:21 2010
@@ -119,19 +119,6 @@
http://tools.ietf.org/html/rfc2616
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48694
- Avoid potential deadlock in WebappClassLoader
- OP confirms patch fixes the deadlock
- https://issues.apache.org/bugzilla/show_bug.cgi?id=48694#c1
- +1: markt, jfclere, kkolinko
- -1:
- kkolinko: Looking at how URLClassLoader.findClass() is implemented, I
- think that concurrent access to WebappClassLoader.findClass() should not
- be allowed. URLClassLoader.findClass() is a protected method, but it is
- public in URLClassLoader. I think we should change its access qualifier
- to be 'protected' in TC7.
-
-
* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48716
Provide an undocumented 'shoot yourself in the foot' option to disable the
JULI logging reset on context stop
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java?rev=915592&r1=915591&r2=915592&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
Tue Feb 23 23:44:21 2010
@@ -992,9 +992,7 @@
}
if ((clazz == null) && hasExternalRepositories) {
try {
- synchronized (this) {
- clazz = super.findClass(name);
- }
+ clazz = super.findClass(name);
} catch(AccessControlException ace) {
log.warn("WebappClassLoader.findClassInternal(" + name
+ ") security exception: " + ace.getMessage(),
ace);
@@ -2330,7 +2328,7 @@
if (clazz != null)
return clazz;
- synchronized (this) {
+ synchronized (name.intern()) {
clazz = entry.loadedClass;
if (clazz != null)
return clazz;
Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=915592&r1=915591&r2=915592&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Tue Feb 23 23:44:21 2010
@@ -87,6 +87,10 @@
<code>org.apache.catalina.startup.Catalina</code>. (markt)
</fix>
<fix>
+ <bug>48694</bug>: Remove potential deadlock in web application class
+ loader. (markt)
+ </fix>
+ <fix>
<bug>48726</bug>: Prevent OOME when uploading large WAR files with the
deployer. Patch provided by adam. (markt)
</fix>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]