You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/01/09 16:25:15 UTC
svn commit: r1556834 - in /tomcat/trunk/java/org/apache/catalina/loader:
LocalStrings.properties WebappClassLoader.java
Author: markt
Date: Thu Jan 9 15:25:14 2014
New Revision: 1556834
URL: http://svn.apache.org/r1556834
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=55970
Ignore non-JAR resources in WEB-INF/lib when checking to see if a reloadable web application has updated JARs.
Modified:
tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties
tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.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=1556834&r1=1556833&r2=1556834&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/loader/LocalStrings.properties Thu Jan 9 15:25:14 2014
@@ -34,9 +34,9 @@ webappClassLoader.checkThreadLocalsForLe
webappClassLoader.checkThreadsHttpClient=Found HttpClient keep-alive thread using web application class loader. Fixed by switching thread to the parent class loader.
webappClassLoader.getThreadGroupError=Unable to obtain the parent for ThreadGroup [{0}]. It will not be possible to check all threads for potential memory leaks
webappClassLoader.loadedByThisOrChildFail=Failed to fully check the entries in an instance of [{0}] for potential memory leaks in context [{1}]
-webappClassLoader.jarsAdded=One of more JARs have been added to the web application [{0}]
-webappClassLoader.jarsModified=One of more JARs have been modified in the web application [{0}]
-webappClassLoader.jarsRemoved=One of more JARs have been removed from the web application [{0}]
+webappClassLoader.jarsAdded=One or more JARs have been added to the web application [{0}]
+webappClassLoader.jarsModified=One or more JARs have been modified in the web application [{0}]
+webappClassLoader.jarsRemoved=One or more JARs have been removed from the web application [{0}]
webappClassLoader.resourceModified=Resource [{0}] has been modified. The last modified time was [{1}] and is now [{2}]
webappClassLoader.stopThreadFail=Failed to terminate thread named [{0}] for web application [{1}]
webappClassLoader.stopTimerThreadFail=Failed to terminate TimerThread named [{0}] for web application [{1}]
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=1556834&r1=1556833&r2=1556834&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java (original)
+++ tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java Thu Jan 9 15:25:14 2014
@@ -735,21 +735,15 @@ public class WebappClassLoader extends U
// Check if JARs have been added or removed
WebResource[] jars = resources.listResources("/WEB-INF/lib");
- if (jars.length > jarModificationTimes.size()) {
- log.info(sm.getString("webappClassLoader.jarsAdded",
- resources.getContext().getName()));
- return true;
- } else if (jars.length < jarModificationTimes.size()){
- log.info(sm.getString("webappClassLoader.jarsRemoved",
- resources.getContext().getName()));
- return true;
- }
+ // Filter out non-JAR resources
+ int jarCount = 0;
for (WebResource jar : jars) {
if (jar.getName().endsWith(".jar") && jar.isFile() && jar.canRead()) {
+ jarCount++;
Long recordedLastModified = jarModificationTimes.get(jar.getName());
if (recordedLastModified == null) {
- // Jars have been added and removed
+ // Jar has been added
log.info(sm.getString("webappClassLoader.jarsAdded",
resources.getContext().getName()));
return true;
@@ -760,11 +754,16 @@ public class WebappClassLoader extends U
resources.getContext().getName()));
return true;
}
- jarModificationTimes.put(
- jar.getName(), Long.valueOf(jar.getLastModified()));
}
}
+ if (jarCount < jarModificationTimes.size()){
+ log.info(sm.getString("webappClassLoader.jarsRemoved",
+ resources.getContext().getName()));
+ return true;
+ }
+
+
// No classes have been modified
return false;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org