You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by gl...@apache.org on 2001/03/06 02:43:47 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader StandardClassLoader.java

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