Author: markt
Date: Wed Apr 16 14:21:47 2014
New Revision: 1587917

URL: http://svn.apache.org/r1587917
Log:
Partial fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=56390
Fixes locking of JARs that do not contain TLDs.

Modified:
    tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties
    tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
    tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java

Modified: tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties?rev=1587917&r1=1587916&r2=1587917&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties Wed 
Apr 16 14:21:47 2014
@@ -42,6 +42,7 @@ webappClassLoader.stackTrace=Stack trace
 webappClassLoader.stackTraceRequestThread=Stack trace of request processing 
thread "{0}":{1}
 webappClassLoader.stopThreadFail=Failed to terminate thread named [{0}] for 
web application [{1}]
 webappClassLoader.stopTimerThreadFail=Failed to terminate TimerThread named 
[{0}] for web application [{1}]
+webappClassLoader.superCloseFail=Failure calling close() on super class
 webappClassLoader.validationErrorJarPath=Unable to validate JAR entry with 
name {0}
 webappClassLoader.warnRequestThread=The web application [{0}] is still 
processing a request that has yet to finish. This is very likely to create a 
memory leak. You can control the time allowed for requests to finish by using 
the unloadDelay attribute of the standard Context implementation.
 webappClassLoader.warnThread=The web application [{0}] appears to have started 
a thread named [{1}] but has failed to stop it. This is very likely to create a 
memory leak.

Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java?rev=1587917&r1=1587916&r2=1587917&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java Wed Apr 
16 14:21:47 2014
@@ -1503,6 +1503,13 @@ public class WebappClassLoader extends U
 
     @Override
     public void destroy() {
+        state = LifecycleState.DESTROYING;
+
+        try {
+            super.close();
+        } catch (IOException ioe) {
+            log.warn(sm.getString("webappClassLoader.superCloseFail"), ioe);
+        }
         state = LifecycleState.DESTROYED;
     }
 

Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java?rev=1587917&r1=1587916&r2=1587917&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java (original)
+++ tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java Wed Apr 16 
14:21:47 2014
@@ -444,8 +444,11 @@ public class WebappLoader extends Lifecy
 
         // Throw away our current class loader
         if (classLoader != null) {
-            classLoader.stop();
-            classLoader.destroy();
+            try {
+                classLoader.stop();
+            } finally {
+                classLoader.destroy();
+            }
         }
 
         try {



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

Reply via email to