Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-14198

[GSS](7.0.z) Intermittent JSP compile error "JBWEB004001: Unable to compile class for JSP"

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • 7.0.10.GA
    • 7.0.8.GA
    • Undertow
    • +

      There are over thousands JSP files and some JSPs got the JSP compile error(2) in intermittently when it's calling for the first time.
      It looks caused by the ECJ(Eclipse compiler for Java) bug(1).
      The bug reported in ECJ version 4.4.1 and fixed in 4.5.1.

      EAP includes ECJ version as below:

      • EAP 7.0.x ECJ version: 4.4.2
      • EAP 7.1 ECJ version: 4.6.1

      It has been testing after applying the EAP 7.1’s ECJ jar (version 4.6.1) in the test environment during almost one month until now. There is no issue and reproduce with the EAP 7.1’s ECJ jar (version 4.6.1) in the test env.

      (1) https://bugs.eclipse.org/bugs/show_bug.cgi?id=464570
      (2)

      2018-01-08 12:33:56,199 ERROR [io.undertow.request] (default task-2) UT005023: Exception handling request to /a/b/jsp/my.jsp: org.apache.jasper.JasperException: JBWEB004001: Unable to compile class for JSP
          at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:667)
          at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
          at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:402)
          at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:346)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
      ...
          at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.ArrayIndexOutOfBoundsException
          at java.lang.System.arraycopy(Native Method)
          at org.eclipse.jdt.internal.compiler.codegen.CodeStream.init(CodeStream.java:4114)
          at org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream.init(StackMapFrameCodeStream.java:426)
          at org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.init(TypeAnnotationCodeStream.java:149)
          at org.eclipse.jdt.internal.compiler.codegen.CodeStream.reset(CodeStream.java:6665)
          at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.generateCode(AbstractMethodDeclaration.java:311)
          at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.generateCode(AbstractMethodDeclaration.java:270)
          at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclaration.java:566)
          at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode(TypeDeclaration.java:635)
          at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.generateCode(CompilationUnitDeclaration.java:368)
          at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:781)
          at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:470)
          at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
          at org.apache.jasper.compiler.Compiler.compile(Compiler.java:359)
          at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
          at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
          at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:652)
          ... 69 more
      

            spyrkob Bartosz Spyrko-Smietanko
            rhn-support-jwon Ted Won
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: