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