Uploaded image for project: 'JSPWiki'
  1. JSPWiki
  2. JSPWIKI-465

JSP classloading does not work because of package name collision org.apache.jsp <=> org.apache.jspwiki

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 3.0
    • 3.0
    • None
    • JSPWiki 3.0.0-svn-41

    Description

      JSPWiki is an incubating project in ASF, one of the required steps here is to move the java package naming from com.ecyrd.jspwiki to org.apache.jspwiki.

      After moving several classes to this new package we are seeing NoClassDeffoundErrors when classes are imported from JSP's
      "Normal" servlets/classes work fine.
      After digging for a couple of days we found that the problem is caused by a bug in the JasperLoader classloader:
      http://svn.eu.apache.org/viewvc/tomcat/jasper/tc6.0.x/src/share/org/apache/jasper/servlet/JasperLoader.java?view=markup
      The following code snippet shows the failure :

      	if( !name.startsWith(Constants.JSP_PACKAGE_NAME) ) {
                  // Class is not in org.apache.jsp, therefore, have our
                  // parent load it
                  clazz = parent.loadClass(name);            
      	    if( resolve )
      		resolveClass(clazz);
      	    return clazz;
      	}
      

      The constant Constants.JSP_PACKAGE_NAME is loaded as follows:

          /**
           * The default package name for compiled jsp pages.
           */
          public static final String JSP_PACKAGE_NAME = 
              System.getProperty("org.apache.jasper.Constants.JSP_PACKAGE_NAME", "org.apache.jsp");
      
      

      Note the missing trailing dot !

      So there is a workaround by specifying the Java System Property org.apache.jasper.Constants.TAG_FILE_PACKAGE_NAME=org.apache.somethingelse

      However, this workaround is only available since revision 441109 of Tomcat 6.
      ( http://svn.eu.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/Constants.java?r1=423920&r2=441109&diff_format=h )

      A bug has been filed for the Tomcat team at : https://issues.apache.org/bugzilla/show_bug.cgi?id=46462

      Attachments

        Activity

          People

            metskem Harry Metske
            metskem Harry Metske
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: