DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=39089>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=39089

           Summary: java.lang.InternalError: name is too long to represent
           Product: Tomcat 5
           Version: 5.5.0
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Keywords: JDK1.5
          Severity: critical
          Priority: P2
         Component: Jasper
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: [EMAIL PROTECTED]


Environment: Tomcat 5.5 running embedded in JBoss 4.0.3SP1
JVM: java version "1.5.0_06"
JVM args: -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
-Dprogram.name=run.bat-Xms128m -Xmx512m -XX:MaxPermSize=256m

When using the JDT compiler to compile JSPs on-the-fly, a very large
JSP throws the following exception:

java.lang.InternalError: name is too long to represent
[full stack at end of bug]

This seems to be related to the follow JVM bug: 
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6294277

but this only occurs if the JDT compiler is in use. Precompiling 
the same JSP from an external ANT script using (1.5) 
javac does not cause the problem.

The ANT compiled JSP's class file is 914KB while the JDT version
is 1016 KB. The original java src files are 3130 KB (52701 lines) for
the ANT version and 3223 (56750 lines) for the JDT version. The number
of lines of source seems to be a factor here, if I turn on the trimSpaces
flag for jasper, the number of lines of in the src file drops and the JSP
starts to work again.

As a test, I took the .java file from the container, compiled it using
javac outside the container and deployed it - it worked fine.

I've posted the original JSP and both versions of the .java and .class files
to: http://www.3ptsoft.com/bug/jasper-bug.zip

My suspicion is that JDT is stuffing too much debug data into the class file
(see above bug reference) - perhaps there is a way to control the behaviour
of the JDT compiler to prevent this until Sun resolves their side of the issue?

Workaround: precompile the JSPs outside of Tomcat:
<target name="jspc" description="compiles JSPs" if="compile.jsps" >
        <!-- Precompile JSPs -->
    <taskdef classname="org.apache.jasper.JspC" name="jasper2" > 
        <classpath refid="build.classpath" />
    </taskdef> 
        
        <jasper2
        compilertargetvm="1.5"
        compilersourcevm="1.5"
        classdebuginfo="true"
        listErrors="true"
        verbose="3"
                validateXml="false" 
                uriroot="${output.dir}/web" 
                webXmlFragment="${output.dir}/web/WEB-INF/generated_web.xml" 
                outputDir="${output.dir}/web/WEB-INF/src">
  </jasper2>

<!-- Insert the generated paths -->
<loadfile property="web.xml"
srcFile="${output.dir}/web/WEB-INF/generated_web.xml"/>         
<replace file="${output.dir}/web/WEB-INF/web.xml" value="${web.xml}">
        <replacetoken><![CDATA[<!-- @jasper-paths@ -->]]></replacetoken>
</replace>

<javac source="1.5" 
        optimize="off"
        destdir="${output.dir}/web/WEB-INF/classes" 
        deprecation="${javac.deprecation}" 
        nowarn="${compile.nowarn}" 
        debug="${compile.debug}" 
        debuglevel="lines,vars,source" 
        compiler="${javac.compiler}" 
        executable="${javac.path}">
        <src path="${output.dir}/web/WEB-INF/src" />
        <classpath refid="build.classpath" />
</javac>
</target>



stack trace thrown:
12:51:49,296 ERROR
[org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/TestAdmin].[jsp]]
- Servlet.service() for servlet jsp threw exception
java.lang.InternalError: name is too long to represent
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at 
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:158)
        at 
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:71)
        at
org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:589)
        at
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:137)
        at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
        at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
        at
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:416)
        at
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
        at 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:372)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.tps.framework.servlet.NDCFilter.doFilter(NDCFilter.java:58)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
com.tps.framework.servlet.HibernateFilter.doFilter(HibernateFilter.java:48)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
com.tps.framework.servlet.HivemindFilter.doFilter(HivemindFilter.java:55)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:124)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
        at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
        at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
        at java.lang.Thread.run(Thread.java:595)

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to