remm 02/02/12 09:59:57 Modified: catalina/src/share/org/apache/catalina/loader WebappClassLoader.java Log: - Enhance the trigger mechanism to match the exact package names. The mechanism included in 4.0.2 appears to be causing some problems in some valid situations. Revision Changes Path 1.34 +20 -36 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java Index: WebappClassLoader.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- WebappClassLoader.java 2 Feb 2002 12:57:43 -0000 1.33 +++ WebappClassLoader.java 12 Feb 2002 17:59:57 -0000 1.34 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v 1.33 2002/02/02 12:57:43 remm Exp $ - * $Revision: 1.33 $ - * $Date: 2002/02/02 12:57:43 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v 1.34 2002/02/12 17:59:57 remm Exp $ + * $Revision: 1.34 $ + * $Date: 2002/02/12 17:59:57 $ * * ==================================================================== * @@ -122,7 +122,7 @@ * * @author Remy Maucherat * @author Craig R. McClanahan - * @version $Revision: 1.33 $ $Date: 2002/02/02 12:57:43 $ + * @version $Revision: 1.34 $ $Date: 2002/02/12 17:59:57 $ */ public class WebappClassLoader extends URLClassLoader @@ -161,31 +161,25 @@ "com.sun.jndi.ldap.LdapCtxFactory", // LDAP added in 1.3 "com.sun.net.ssl.internal.ssl.Provider", // JSSE added in 1.4 "javax.security.auth.Subject", // JAAS added in 1.4 - //"javax.net.SocketFactory", // JSSE added in 1.4 - //"javax.security.cert.X509Certificate", // JSSE added in 1.4 - //"javax.sql.DataSource", // JDBC ext. added in 1.4 - //"javax.xml.parsers.DocumentBuilder", // JAXP added in 1.4 - "javax.servlet.Servlet", // Servlet API - // "org.apache.crimson.jaxp.DocumentBuilderImpl", - // Crimson added in 1.4 + "javax.servlet.Servlet" // Servlet API }; /** - * The set of trigger classes that will cause a proposed repository not - * to be added if this class is visible to the class loader that loaded - * this factory class. Typically, trigger classes will be listed for - * components that have been integrated into the JDK for later versions, - * but where the corresponding JAR files are required to run on - * earlier versions. + * Set of package names which are not allowed to be loaded from a webapp + * class loader. */ - private static final String[] classTriggers = { - "javax.net.", // JSSE added in 1.4 - "javax.security.cert.", // JSSE added in 1.4 - "javax.naming.", // JNDI added in 1.3 - "javax.xml.", // JAXP added in 1.4 - "org.xml.sax.", - "org.w3c.dom." + private static final String[] packageTriggers = { + "javax.net", // JSSE added in 1.4 + "javax.net.ssl", // JSSE added in 1.4 + "javax.security.cert", // JSSE added in 1.4 + "javax.naming", // JNDI added in 1.3 + "javax.naming.directory", // JNDI added in 1.3 + "javax.xml.parsers", // JAXP added in 1.4 + "org.xml.sax", + "org.xml.sax.ext", + "org.xml.sax.helpers", + "org.w3c.dom" }; @@ -1911,7 +1905,6 @@ return false; // Looking up the package - /* String packageName = null; int pos = name.lastIndexOf('.'); if (pos != -1) @@ -1919,17 +1912,8 @@ else return true; - if (packageName.equals("javax.servlet")) - return false; - if (packageName.equals("javax.servlet.http")) - return false; - if (packageName.equals("javax.servlet.jsp")) - return false; - if (packageName.equals("javax.servlet.jsp.tagext")) - return false; - */ - for (int i = 0; i < classTriggers.length; i++) { - if (name.startsWith(classTriggers[i])) + for (int i = 0; i < packageTriggers.length; i++) { + if (packageName.equals(packageTriggers[i])) return false; }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>