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
- is incorporated by
-
JBEAP-14220 (7.0.z) Upgrade ECJ from 4.4.2 to ???
- Closed
- links to