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]>

Reply via email to