remm 01/07/22 14:23:17
Modified: catalina/src/share/org/apache/catalina/loader
WebappClassLoader.java
Log:
- Fix for bug #2725 (non JARs files put in /WEB-INF/lib cause constant
reloads of a reloadable context).
Reported by Jeff Turner <jeff at socialchange.net.au>.
Revision Changes Path
1.11 +25 -12
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
Index: WebappClassLoader.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- WebappClassLoader.java 2001/07/22 20:25:10 1.10
+++ WebappClassLoader.java 2001/07/22 21:23:17 1.11
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
1.10 2001/07/22 20:25:10 pier Exp $
- * $Revision: 1.10 $
- * $Date: 2001/07/22 20:25:10 $
+ * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
1.11 2001/07/22 21:23:17 remm Exp $
+ * $Revision: 1.11 $
+ * $Date: 2001/07/22 21:23:17 $
*
* ====================================================================
*
@@ -123,7 +123,7 @@
*
* @author Remy Maucherat
* @author Craig R. McClanahan
- * @version $Revision: 1.10 $ $Date: 2001/07/22 20:25:10 $
+ * @version $Revision: 1.11 $ $Date: 2001/07/22 21:23:17 $
*/
public class WebappClassLoader
extends URLClassLoader
@@ -719,20 +719,33 @@
try {
NamingEnumeration enum = resources.listBindings(getJarPath());
- int i;
- for (i = 0; enum.hasMoreElements() && (i < length); i++) {
+ int i = 0;
+ while (enum.hasMoreElements() && (i < length)) {
NameClassPair ncPair = (NameClassPair) enum.nextElement();
- if (!ncPair.getName().equals(jarNames[i])) {
+ String name = ncPair.getName();
+ // Ignore non JARs present in the lib folder
+ if (!name.endsWith(".jar"))
+ continue;
+ if (!name.equals(jarNames[i])) {
// Missing JAR
- log(" Additional JARs have been added : '"
- + ncPair.getName() + "'");
+ log(" Additional JARs have been added : '"
+ + name + "'");
return (true);
}
+ i++;
}
if (enum.hasMoreElements()) {
- // There was more JARs
- log(" Additional JARs have been added");
- return (true);
+ while (enum.hasMoreElements()) {
+ NameClassPair ncPair =
+ (NameClassPair) enum.nextElement();
+ String name = ncPair.getName();
+ // Additional non-JAR files are allowed
+ if (name.endsWith(".jar")) {
+ // There was more JARs
+ log(" Additional JARs have been added");
+ return (true);
+ }
+ }
} else if (i < jarNames.length) {
// There was less JARs
log(" Additional JARs have been added");