glenn       01/03/05 17:43:47

  Modified:    catalina/src/share/org/apache/catalina/loader
                        StandardClassLoader.java
  Log:
  Catch SecurityManager FilePermission AccessControlException
  
  Revision  Changes    Path
  1.12      +22 -13    
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java
  
  Index: StandardClassLoader.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- StandardClassLoader.java  2001/02/18 02:18:13     1.11
  +++ StandardClassLoader.java  2001/03/06 01:43:46     1.12
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.11 2001/02/18 02:18:13 craigmcc Exp $
  - * $Revision: 1.11 $
  - * $Date: 2001/02/18 02:18:13 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.12 2001/03/06 01:43:46 glenn Exp $
  + * $Revision: 1.12 $
  + * $Date: 2001/03/06 01:43:46 $
    *
    * ====================================================================
    *
  @@ -75,6 +75,7 @@
   import java.net.URLConnection;
   import java.net.URLStreamHandlerFactory;
   import java.net.URLStreamHandler;
  +import java.security.AccessControlException;
   import java.security.CodeSource;
   import java.security.PermissionCollection;
   import java.security.Policy;
  @@ -109,7 +110,7 @@
    *
    * @author Craig R. McClanahan
    * @author Remy Maucherat
  - * @version $Revision: 1.11 $ $Date: 2001/02/18 02:18:13 $
  + * @version $Revision: 1.12 $ $Date: 2001/03/06 01:43:46 $
    */
   
   public class StandardClassLoader
  @@ -643,6 +644,8 @@
                log("      super.findClass(" + name + ")");
            try {
                clazz = super.findClass(name);
  +            } catch(AccessControlException ace) {
  +             throw new ClassNotFoundException(name);
            } catch (RuntimeException e) {
                if (debug >= 4)
                    log("      -->RuntimeException Rethrown", e);
  @@ -673,15 +676,21 @@
                   pathname = pathname.substring(5);
               pathname += File.separatorChar +
                   name.replace('.', File.separatorChar) + ".class";
  -            File file = new File(pathname);
  -            if (file.exists() && file.canRead()) {
  -                if (debug >= 3)
  -                    log("    Caching from '" + file.getAbsolutePath() +
  -                        "' modified '" +
  -                        (new java.sql.Timestamp(file.lastModified())) + "'");
  -                classCache.put(name, new ClassCacheEntry(clazz, file,
  -                                                         file.lastModified()));
  -            }
  +         try {
  +                File file = new File(pathname);
  +                if (file.exists() && file.canRead()) {
  +                    if (debug >= 3)
  +                        log("    Caching from '" + file.getAbsolutePath() +
  +                            "' modified '" +
  +                            (new java.sql.Timestamp(file.lastModified())) +
  +                         "'");
  +                    classCache.put(name, new ClassCacheEntry(clazz, file,
  +                                   file.lastModified()));
  +             }
  +            } catch(AccessControlException ace) {
  +             // Don't worry about caching the class last modified
  +             // if ClassLoader doesn't have permission to read file
  +         }
           }
   
           // Return the class we have located
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to