remm        02/02/12 10:01:49

  Modified:    catalina/src/share/org/apache/catalina/loader Tag:
                        tomcat_40_branch 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 (for example, in extension packages with DOM, used by Cocoon 2).
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.15.2.10 +20 -30    
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.15.2.9
  retrieving revision 1.15.2.10
  diff -u -r1.15.2.9 -r1.15.2.10
  --- WebappClassLoader.java    7 Feb 2002 19:20:35 -0000       1.15.2.9
  +++ WebappClassLoader.java    12 Feb 2002 18:01:49 -0000      1.15.2.10
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
 1.15.2.9 2002/02/07 19:20:35 remm Exp $
  - * $Revision: 1.15.2.9 $
  - * $Date: 2002/02/07 19:20:35 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
 1.15.2.10 2002/02/12 18:01:49 remm Exp $
  + * $Revision: 1.15.2.10 $
  + * $Date: 2002/02/12 18:01:49 $
    *
    * ====================================================================
    *
  @@ -122,7 +122,7 @@
    *
    * @author Remy Maucherat
    * @author Craig R. McClanahan
  - * @version $Revision: 1.15.2.9 $ $Date: 2002/02/07 19:20:35 $
  + * @version $Revision: 1.15.2.10 $ $Date: 2002/02/12 18:01:49 $
    */
   public class WebappClassLoader
       extends URLClassLoader
  @@ -165,27 +165,27 @@
           //"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
  +        "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.
  +     * 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 +1911,6 @@
               return false;
   
           // Looking up the package
  -        /*
           String packageName = null;
           int pos = name.lastIndexOf('.');
           if (pos != -1)
  @@ -1919,17 +1918,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