remm 00/11/12 20:53:51
Modified: catalina/src/share/org/apache/catalina/loader
StandardLoader.java
Log:
- Class repositories in the contexts were not loaded correctly if the
catalina.home variable contained a relative path. Now, the path is
normalized (/../ is removed, as well as /./).
Revision Changes Path
1.11 +18 -6
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java
Index: StandardLoader.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- StandardLoader.java 2000/10/13 23:33:26 1.10
+++ StandardLoader.java 2000/11/13 04:53:51 1.11
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java,v
1.10 2000/10/13 23:33:26 craigmcc Exp $
- * $Revision: 1.10 $
- * $Date: 2000/10/13 23:33:26 $
+ * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java,v
1.11 2000/11/13 04:53:51 remm Exp $
+ * $Revision: 1.11 $
+ * $Date: 2000/11/13 04:53:51 $
*
* ====================================================================
*
@@ -101,7 +101,7 @@
* is not present, the system class loader will be used instead.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.10 $ $Date: 2000/10/13 23:33:26 $
+ * @version $Revision: 1.11 $ $Date: 2000/11/13 04:53:51 $
*/
public final class StandardLoader
@@ -801,12 +801,24 @@
if (classesURL != null) {
// Work around JDK 1.3 problem on Windows
String classesURLString = classesURL.toString();
+ if (classesURLString.indexOf('\\') >= 0)
+ classesURLString = classesURLString.replace('\\', '/');
+ // Resolve occurrences of "/./" in the normalized path
while (true) {
- int index = classesURLString.indexOf("\\.\\");
+ int index = classesURLString.indexOf("/./");
if (index < 0)
break;
classesURLString = classesURLString.substring(0, index) +
- '\\' + classesURLString.substring(index + 3);
+ classesURLString.substring(index + 2);
+ }
+ // Resolve occurrences of "/../" in the normalized path
+ while (true) {
+ int index = classesURLString.indexOf("/../");
+ if (index <= 0)
+ break;
+ int index2 = classesURLString.lastIndexOf('/', index - 1);
+ classesURLString = classesURLString.substring(0, index2) +
+ classesURLString.substring(index + 3);
}
addRepository(classesURLString + "/");
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]