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]