remm 02/02/02 04:57:43
Modified: catalina/src/share/org/apache/catalina/loader
WebappClassLoader.java
Log:
- Modify the way class triggers work to be less restrictive, which fixes problems
with webapps which use Xerces (since Xerces 1 is not API compatible with
Xerces 2).
Revision Changes Path
1.33 +32 -9
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.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- WebappClassLoader.java 28 Jan 2002 23:06:00 -0000 1.32
+++ WebappClassLoader.java 2 Feb 2002 12:57:43 -0000 1.33
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
1.32 2002/01/28 23:06:00 remm Exp $
- * $Revision: 1.32 $
- * $Date: 2002/01/28 23:06:00 $
+ * $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 $
*
* ====================================================================
*
@@ -122,7 +122,7 @@
*
* @author Remy Maucherat
* @author Craig R. McClanahan
- * @version $Revision: 1.32 $ $Date: 2002/01/28 23:06:00 $
+ * @version $Revision: 1.33 $ $Date: 2002/02/02 12:57:43 $
*/
public class WebappClassLoader
extends URLClassLoader
@@ -161,17 +161,34 @@
"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.naming.Context", // JNDI added in 1.3
- "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.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
};
+ /**
+ * 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.
+ */
+ 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."
+ };
+
+
// ----------------------------------------------------------- Constructors
@@ -1894,6 +1911,7 @@
return false;
// Looking up the package
+ /*
String packageName = null;
int pos = name.lastIndexOf('.');
if (pos != -1)
@@ -1909,6 +1927,11 @@
return false;
if (packageName.equals("javax.servlet.jsp.tagext"))
return false;
+ */
+ for (int i = 0; i < classTriggers.length; i++) {
+ if (name.startsWith(classTriggers[i]))
+ return false;
+ }
return true;
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>