cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader StandardClassLoader.java WebappClassLoader.java
luehe 2004/04/14 10:35:41 Modified:catalina/src/share/org/apache/catalina/loader StandardClassLoader.java WebappClassLoader.java Log: Added support for exception chaining. Revision ChangesPath 1.9 +12 -10 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java Index: StandardClassLoader.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- StandardClassLoader.java 2 Mar 2004 12:31:57 - 1.8 +++ StandardClassLoader.java 14 Apr 2004 17:35:41 - 1.9 @@ -370,7 +370,10 @@ URL url = new URL(null, repository, streamHandler); super.addURL(url); } catch (MalformedURLException e) { -throw new IllegalArgumentException(e.toString()); +IllegalArgumentException iae = new IllegalArgumentException +(Invalid repository: + repository); +iae.initCause(e); +throw iae; } // Add this repository to our internal list @@ -454,7 +457,7 @@ } catch (Exception se) { if (debug = 4) log( --Exception--ClassNotFoundException, se); -throw new ClassNotFoundException(name); +throw new ClassNotFoundException(name, se); } } } @@ -473,7 +476,7 @@ clazz = super.findClass(name); } } catch(AccessControlException ace) { -throw new ClassNotFoundException(name); +throw new ClassNotFoundException(name, ace); } catch (RuntimeException e) { if (debug = 4) log( --RuntimeException Rethrown, e); @@ -774,10 +777,8 @@ } catch (SecurityException se) { String error = Security Violation, attempt to use + Restricted Class: + name; -System.out.println(error); -se.printStackTrace(); log(error); -throw new ClassNotFoundException(error); +throw new ClassNotFoundException(error, se); } } } @@ -944,9 +945,10 @@ repository + '); } } catch (Throwable t) { -t.printStackTrace(); -throw new IllegalArgumentException -(addRepositoryInternal: + t); +IllegalArgumentException iae = new IllegalArgumentException +(addRepositoryInternal); +iae.initCause(t); +throw iae; } finally { if (jarFile != null) { try { 1.32 +9 -9 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java Index: WebappClassLoader.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- WebappClassLoader.java27 Feb 2004 14:58:44 - 1.31 +++ WebappClassLoader.java14 Apr 2004 17:35:41 - 1.32 @@ -545,7 +545,10 @@ hasExternalRepositories = true; repositoryURLs = null; } catch (MalformedURLException e) { -throw new IllegalArgumentException(e.toString()); +IllegalArgumentException iae = new IllegalArgumentException +(Invalid repository: + repository); +iae.initCause(e); +throw iae; } } @@ -842,7 +845,7 @@ } catch (Exception se) { if (log.isTraceEnabled()) log.trace( --Exception--ClassNotFoundException, se); -throw new ClassNotFoundException(name); +throw new ClassNotFoundException(name, se); } } } @@ -860,8 +863,7 @@ throw cnfe; } } catch(AccessControlException ace) { -ace.printStackTrace(); -throw new ClassNotFoundException(name); +throw new ClassNotFoundException(name, ace); } catch (RuntimeException e) { if (log.isTraceEnabled()) log.trace( --RuntimeException
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader StandardClassLoader.java WebappClassLoader.java
luehe 2004/04/14 18:44:09 Modified:catalina/src/share/org/apache/catalina/core StandardContext.java StandardDefaultContext.java catalina/src/share/org/apache/catalina/valves RequestFilterValve.java catalina/src/share/org/apache/catalina/mbeans DefaultContextMBean.java GroupMBean.java MemoryUserDatabaseMBean.java NamingResourcesMBean.java StandardContextMBean.java UserMBean.java catalina/src/share/org/apache/catalina/loader StandardClassLoader.java WebappClassLoader.java Log: Hide Throwable.initCause() inside Jdk14Compat, in order to preserver BC with J2SE 1.3 Revision ChangesPath 1.127 +21 -11 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java Index: StandardContext.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java,v retrieving revision 1.126 retrieving revision 1.127 diff -u -r1.126 -r1.127 --- StandardContext.java 13 Apr 2004 23:59:50 - 1.126 +++ StandardContext.java 15 Apr 2004 01:44:08 - 1.127 @@ -101,6 +101,7 @@ import org.apache.naming.resources.FileDirContext; import org.apache.naming.resources.ProxyDirContext; import org.apache.naming.resources.WARDirContext; +import org.apache.tomcat.util.compat.JdkCompat; /** * Standard implementation of the bContext/b interface. Each @@ -135,6 +136,22 @@ } +// - Class Variables + + +/** + * The descriptive information string for this implementation. + */ +private static final String info = +org.apache.catalina.core.StandardContext/1.0; + + +/** + * JDK compatibility support + */ +private static final JdkCompat jdkCompat = JdkCompat.getJdkCompat(); + + // - Instance Variables @@ -305,13 +322,6 @@ /** - * The descriptive information string for this implementation. - */ -private static final String info = -org.apache.catalina.core.StandardContext/1.0; - - -/** * The set of classnames of InstanceListeners that will be added * to each newly created Wrapper by codecreateWrapper()/code. */ @@ -5066,7 +5076,7 @@ } catch (MalformedObjectNameException e) { IllegalArgumentException iae = new IllegalArgumentException (Cannot create object name for environment + envs[i]); -iae.initCause(e); +jdkCompat.chainException(iae, e); throw iae; } } @@ -5091,7 +5101,7 @@ } catch (MalformedObjectNameException e) { IllegalArgumentException iae = new IllegalArgumentException (Cannot create object name for resource + resources[i]); -iae.initCause(e); +jdkCompat.chainException(iae, e); throw iae; } } @@ -5116,7 +5126,7 @@ } catch (MalformedObjectNameException e) { IllegalArgumentException iae = new IllegalArgumentException (Cannot create object name for resource + links[i]); -iae.initCause(e); +jdkCompat.chainException(iae, e); throw iae; } } 1.14 +22 -12 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardDefaultContext.java Index: StandardDefaultContext.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardDefaultContext.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- StandardDefaultContext.java 13 Apr 2004 23:59:50 - 1.13 +++ StandardDefaultContext.java 15 Apr 2004 01:44:09 - 1.14 @@ -53,6 +53,7 @@ import org.apache.commons.modeler.ManagedBean; import org.apache.commons.modeler.Registry; import org.apache.naming.ContextAccessController; +import org.apache.tomcat.util.compat.JdkCompat; /** * Used to store the default configuration a Host will use @@ -81,6 +82,22 @@ } +// - Class Variables + + +/** + * The string manager for this package. + */ +protected static StringManager sm = +StringManager.getManager(Constants.Package); +
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader StandardClassLoader.java WebappClassLoader.java WebappLoader.java
jfarcand2002/10/16 09:08:29 Modified:catalina/src/share/org/apache/catalina/loader StandardClassLoader.java WebappClassLoader.java WebappLoader.java Log: Security Audit. Protect the findRepositories public method by cloning the String[] values. This method is no used right now. Should I remove it instead of protecting it? Revision ChangesPath 1.5 +7 -6 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java Index: StandardClassLoader.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- StandardClassLoader.java 11 Oct 2002 16:08:59 - 1.4 +++ StandardClassLoader.java 16 Oct 2002 16:08:28 - 1.5 @@ -429,11 +429,12 @@ /** * Return a String array of the current repositories for this class * loader. If there are no repositories, a zero-length array is - * returned. + * returned. For security reason, returns a clone of the Array (since + * String are immutable). */ public String[] findRepositories() { -return (repositories); +return ((String[])repositories.clone()); } 1.10 +7 -6 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java Index: WebappClassLoader.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- WebappClassLoader.java11 Oct 2002 15:52:01 - 1.9 +++ WebappClassLoader.java16 Oct 2002 16:08:29 - 1.10 @@ -668,11 +668,12 @@ /** * Return a String array of the current repositories for this class * loader. If there are no repositories, a zero-length array is - * returned. + * returned.For security reason, returns a clone of the Array (since + * String are immutable). */ public String[] findRepositories() { -return (repositories); +return ((String[])repositories.clone()); } 1.5 +7 -5 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappLoader.java Index: WebappLoader.java === RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/loader/WebappLoader.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- WebappLoader.java 20 Sep 2002 21:22:31 - 1.4 +++ WebappLoader.java 16 Oct 2002 16:08:29 - 1.5 @@ -536,10 +536,12 @@ /** * Return the set of repositories defined for this class loader. * If none are defined, a zero-length array is returned. + * For security reason, returns a clone of the Array (since + * String are immutable). */ public String[] findRepositories() { -return (repositories); +return ((String[])repositories.clone()); } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]