oracle / opengrok

OpenGrok is a fast and usable source code search and cross reference engine, written in Java
http://oracle.github.io/opengrok/
Other
4.3k stars 739 forks source link

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp #4423

Closed mtelka closed 9 months ago

mtelka commented 9 months ago

Describe the bug After upgrade from 1.12.15 to 1.12.16 I see this error:

There was an error!

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp

org.apache.jasper.JasperException: org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
    at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:578)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:422)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
    at org.opengrok.web.CookieFilter.doFilter(CookieFilter.java:50)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
    at org.opengrok.web.AuthorizationFilter.doFilter(AuthorizationFilter.java:95)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
    at org.opengrok.web.StatisticsFilter.doFilter(StatisticsFilter.java:67)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:673)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
    at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:194)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
    ... 34 more
Caused by: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:129)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:58)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:151)
    at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:189)
    ... 35 more

Downgrade back to 1.12.15 solves the problem.

To Reproduce copy new source.war to the webapps directory.

Expected behavior OpoenGrok works.

Screenshots N/A

Additional context Tomcat 10.1.13

vladak commented 9 months ago

Refreshing the index page I am also getting:

java.lang.NoClassDefFoundError: jakarta/servlet/jsp/jstl/core/ConditionalTagSupport

jakarta.servlet.ServletException: java.lang.NoClassDefFoundError: jakarta/servlet/jsp/jstl/core/ConditionalTagSupport
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:332)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:223)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
    at org.apache.catalina.filters.RequestDumperFilter.doFilter(RequestDumperFilter.java:198)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
    at org.opengrok.web.CookieFilter.doFilter(CookieFilter.java:50)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
    at org.opengrok.web.AuthorizationFilter.doFilter(AuthorizationFilter.java:95)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
    at org.opengrok.web.StatisticsFilter.doFilter(StatisticsFilter.java:67)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:864)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1655)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/jsp/jstl/core/ConditionalTagSupport
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2433)
    at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:864)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1187)
    at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1232)
    at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1464)
    at org.apache.jasper.compiler.Parser.parse(Parser.java:138)
    at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:244)
    at org.apache.jasper.compiler.ParserController.parse(ParserController.java:105)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:206)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:386)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:346)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
    at org.apache.jasper.servlet.JspServletWrapper.loadTagFile(JspServletWrapper.java:270)
    at org.apache.jasper.compiler.TagFileProcessor.loadTagFile(TagFileProcessor.java:586)
    at org.apache.jasper.compiler.TagFileProcessor.access$000(TagFileProcessor.java:50)
    at org.apache.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:669)
    at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1546)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2391)
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2443)
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2449)
    at org.apache.jasper.compiler.Node$Root.accept(Node.java:472)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2391)
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2443)
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2467)
    at org.apache.jasper.compiler.Node$IncludeDirective.accept(Node.java:645)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2391)
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2443)
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2449)
    at org.apache.jasper.compiler.Node$Root.accept(Node.java:472)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2391)
    at org.apache.jasper.compiler.TagFileProcessor.loadTagFiles(TagFileProcessor.java:692)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:236)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:386)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:346)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
    ... 35 more
Caused by: java.lang.ClassNotFoundException: jakarta.servlet.jsp.jstl.core.ConditionalTagSupport
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1364)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1187)
    ... 79 more

Sometimes I get java.lang.NoClassDefFoundError: jakarta/servlet/jsp/jstl/core/ConditionalTagSupport, sometimes java.lang.ClassNotFoundException: org.apache.jsp.index_jsp.

For the record, I built the distribution on my laptop using JDK 11, to make sure this is not an artifact of JDK 17 build in Github Actions.

vladak commented 9 months ago

reverting 9a26a1b8102d4ebdcf0fa78d75f18988f957bde8 fixes the problem.

vladak commented 9 months ago

Thanks @mtelka for the early report, much appreciated !

mtelka commented 9 months ago

Thank you @vladak for fast fix :-).