craigmcc    00/12/21 16:37:52

  Modified:    catalina/src/share/org/apache/catalina/loader
                        StandardLoader.java
               catalina/src/share/org/apache/catalina/startup
                        ContextConfig.java HostConfig.java
  Log:
  Second (and last) round of changes from File.getAbsolutePath() to
  File.getCanonicalPath().  With these changes, the following assertions can
  be made:
  
  * The URLClassLoader for a web application will never be handed a "file:"
    URL that is not normalized.
  
  * The document root directory for a web application will always be
    normalized.
  
  * The URL returned by ServletContext.getResource() will always be
    normalized.
  
  This should clean up the cases where URLClassLoader on some platforms does
  not deal nicely with unnormalized repositories, and causes classes (or
  resources) to mysteriously not load, or not load from the correct place.
  
  Submitted by: Stuart Roebuck <[EMAIL PROTECTED]>
  
  Revision  Changes    Path
  1.13      +12 -9     
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.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- StandardLoader.java       2000/12/14 22:32:16     1.12
  +++ StandardLoader.java       2000/12/22 00:37:50     1.13
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java,v
 1.12 2000/12/14 22:32:16 craigmcc Exp $
  - * $Revision: 1.12 $
  - * $Date: 2000/12/14 22:32:16 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java,v
 1.13 2000/12/22 00:37:50 craigmcc Exp $
  + * $Revision: 1.13 $
  + * $Date: 2000/12/22 00:37:50 $
    *
    * ====================================================================
    *
  @@ -101,7 +101,7 @@
    * is not present, the system class loader will be used instead.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.12 $ $Date: 2000/12/14 22:32:16 $
  + * @version $Revision: 1.13 $ $Date: 2000/12/22 00:37:50 $
    */
   
   public final class StandardLoader
  @@ -191,7 +191,6 @@
        * <code>Reloader</code> interface.
        */
       private String loaderClass =
  -        //   "org.apache.catalina.loader.FileClassLoader";
        "org.apache.catalina.loader.StandardClassLoader";
   
   
  @@ -875,10 +874,14 @@
                    if (!filenames[i].endsWith(".jar"))
                        continue;
                    File jarFile = new File(libFile, filenames[i]);
  -                 if (debug > 0)
  -                     log(" Adding '" + "file: " +
  -                            jarFile.getAbsolutePath() + "'");
  -                    addRepository("file:" + jarFile.getAbsolutePath());
  +                    try {
  +                        if (debug > 0)
  +                            log(" Adding '" + "file: " +
  +                                jarFile.getCanonicalPath() + "'");
  +                        addRepository("file:" + jarFile.getCanonicalPath());
  +                    } catch (IOException e) {
  +                        log(jarFile.getAbsolutePath(), e);
  +                    }
                }
            }
        }
  
  
  
  1.35      +18 -10    
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java
  
  Index: ContextConfig.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- ContextConfig.java        2000/12/01 19:25:31     1.34
  +++ ContextConfig.java        2000/12/22 00:37:52     1.35
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v
 1.34 2000/12/01 19:25:31 craigmcc Exp $
  - * $Revision: 1.34 $
  - * $Date: 2000/12/01 19:25:31 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v
 1.35 2000/12/22 00:37:52 craigmcc Exp $
  + * $Revision: 1.35 $
  + * $Date: 2000/12/22 00:37:52 $
    *
    * ====================================================================
    *
  @@ -118,7 +118,7 @@
    * of that Context, and the associated defined servlets.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.34 $ $Date: 2000/12/01 19:25:31 $
  + * @version $Revision: 1.35 $ $Date: 2000/12/22 00:37:52 $
    */
   
   public final class ContextConfig
  @@ -678,10 +678,13 @@
                            File.separator + Constants.DefaultWebXml);
        FileInputStream stream = null;
        try {
  -         stream = new FileInputStream(file.getAbsolutePath());
  +         stream = new FileInputStream(file.getCanonicalPath());
        } catch (FileNotFoundException e) {
  -         log(sm.getString("context.Config.defaultMissing"));
  +         log(sm.getString("contextConfig.defaultMissing"));
            return;
  +        } catch (IOException e) {
  +            log(sm.getString("contextConfig.defaultMissing"), e);
  +            return;
        }
   
        // Process the default web.xml file
  @@ -796,8 +799,13 @@
           commonPerms.add(new FilePermission(baseFile, "read"));
           File workDir = (File)
               context.getServletContext().getAttribute(Globals.WORK_DIR_ATTR);
  -        commonPerms.add(new FilePermission(workDir.getAbsolutePath() + "/-",
  -                                           "read,write,delete"));
  +        try {
  +            commonPerms.add(new FilePermission(workDir.getCanonicalPath() +
  +                                               "/-",
  +                                               "read,write,delete"));
  +        } catch (IOException e) {
  +            log("permissionsConfig.filePerm", e);
  +        }
           if (debug >= 1)
               log(" commonPerms=" + commonPerms.toString());
   
  @@ -838,10 +846,10 @@
               log("Building work directory code source");
           URL workURL = null;
           try {
  -            workURL = new URL("file", null, workDir.getAbsolutePath());
  +            workURL = new URL("file", null, workDir.getCanonicalPath());
               if (debug >= 1)
                   log(" workURL=" + workURL.toString());
  -        } catch (MalformedURLException e) {
  +        } catch (IOException e) {
               log("permissionsConfig.workURL", e);
           }
           CodeSource workSource = new CodeSource(workURL, null);
  
  
  
  1.4       +6 -6      
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/HostConfig.java
  
  Index: HostConfig.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/HostConfig.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- HostConfig.java   2000/11/02 01:00:16     1.3
  +++ HostConfig.java   2000/12/22 00:37:52     1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/HostConfig.java,v
 1.3 2000/11/02 01:00:16 craigmcc Exp $
  - * $Revision: 1.3 $
  - * $Date: 2000/11/02 01:00:16 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/HostConfig.java,v
 1.4 2000/12/22 00:37:52 craigmcc Exp $
  + * $Revision: 1.4 $
  + * $Date: 2000/12/22 00:37:52 $
    *
    * ====================================================================
    *
  @@ -93,7 +93,7 @@
    * of that Host, and the associated defined contexts.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.3 $ $Date: 2000/11/02 01:00:16 $
  + * @version $Revision: 1.4 $ $Date: 2000/12/22 00:37:52 $
    */
   
   public final class HostConfig
  @@ -290,7 +290,7 @@
                   if (debug >= 1)
                       log(sm.getString("hostConfig.deployDir", files[i]));
                   try {
  -                    URL url = new URL("file", null, dir.getAbsolutePath());
  +                    URL url = new URL("file", null, dir.getCanonicalPath());
                       ((Deployer) host).deploy(contextPath, url);
                   } catch (Throwable t) {
                       log(sm.getString("hostConfig.deployDir.error", files[i]),
  @@ -313,7 +313,7 @@
                   if (debug >= 1)
                       log(sm.getString("hostConfig.deployJar", files[i]));
                   try {
  -                    URL url = new URL("file", null, dir.getAbsolutePath());
  +                    URL url = new URL("file", null, dir.getCanonicalPath());
                       url = new URL("jar:" + url.toString() + "!/");
                       ((Deployer) host).deploy(contextPath, url);
                   } catch (Throwable t) {
  
  
  

Reply via email to