org.apache.jasper.JasperException: JBWEB004001: Unable to compile class for JSP

1,013 views
Skip to first unread message

Dinko Belchevski

unread,
Sep 21, 2016, 3:41:15 AM9/21/16
to HotswapAgent
Hi,
I'm having troubles with HotSwapAgent (build from Git source, commit 145). We are using Java 8 with Jboss 7.0.0 GA. Immediately after Jboss restart everything works fine, but after some time (usually several hours) we are facing following issue:

2016-09-20 17:05:14,782 ERROR [io.undertow.request] (default task-13) UT005023: Exception handling request to /BrowserWeb/jsps/enqrequest.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 io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
at com.temenos.t24browser.servlets.FormFieldInputFilter.doFilter(FormFieldInputFilter.java:95)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at com.temenos.t24browser.servlets.EncodingFilter.doFilter(EncodingFilter.java:58)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at com.temenos.arc.security.filter.HTTPHeaderFilter.doFilter(HTTPHeaderFilter.java:31)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.jsp.JspFileHandler.handleRequest(JspFileHandler.java:32)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56)
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:285)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:264)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:175)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:792)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: tmpFile.renameTo(classFile) failed
at org.apache.jasper.compiler.SmapUtil$SDEInstaller.install(SmapUtil.java:205)
at org.apache.jasper.compiler.SmapUtil.installSmap(SmapUtil.java:163)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:464)
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)
... 45 more


If we disable HotSwapAgent everything is fine. It seems that HotSwapAgent locks some files and they cannot be moved. We don't need BrowserWeb to be monitored by HotSwapAgent, but we tried different ways to disable it per module and nothing works.

Dinko Belchevski

unread,
Sep 21, 2016, 3:45:08 AM9/21/16
to HotswapAgent
Here is the error from the agent itself:

HOTSWAP AGENT: 16:37:3.295 ERROR (org.hotswap.agent.annotation.handler.WatchEventCommand) - Unable create CtClass for URI 'file:///C:/jboss-EAP-7.0.0/standalone/tmp/BrowserWeb.war/org/apache/jsp/jsps/enqrequest_jsp.class'.
2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) java.lang.IllegalArgumentException: java.io.FileNotFoundException: C:\jboss-EAP-7.0.0\standalone\tmp\BrowserWeb.war\org\apache\jsp\jsps\enqrequest_jsp.class (The system cannot find the file specified)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at org.hotswap.agent.util.IOUtils.toByteArray(IOUtils.java:53)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at org.hotswap.agent.annotation.handler.WatchEventCommand.createCtClass(WatchEventCommand.java:191)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at org.hotswap.agent.annotation.handler.WatchEventCommand.onWatchEvent(WatchEventCommand.java:120)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at org.hotswap.agent.annotation.handler.WatchEventCommand.executeCommand(WatchEventCommand.java:51)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at org.hotswap.agent.command.impl.CommandExecutor.run(CommandExecutor.java:25)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) Caused by: java.io.FileNotFoundException: C:\jboss-EAP-7.0.0\standalone\tmp\BrowserWeb.war\org\apache\jsp\jsps\enqrequest_jsp.class (The system cannot find the file specified)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at java.io.FileInputStream.open0(Native Method)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at java.io.FileInputStream.open(FileInputStream.java:195)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at java.io.FileInputStream.<init>(FileInputStream.java:138)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at java.io.FileInputStream.<init>(FileInputStream.java:93)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at java.net.URL.openStream(URL.java:1045)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) at org.hotswap.agent.util.IOUtils.toByteArray(IOUtils.java:47)

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) ... 4 more

2016-09-20 16:37:03,295 INFO  [stdout] (Thread-592) 

vladimir dvorak

unread,
Sep 26, 2016, 10:26:11 AM9/26/16
to HotswapAgent
Look at this issue

#88

if it is related to your problem there is a proposal of hack

https://github.com/yuke/HotswapAgent/commit/98037e995c964ddc90ca4acf9332c316269264a9

it can help solve your problem. Let me know if it helps please :)

Dinko Belchevski

unread,
Oct 4, 2016, 5:16:51 AM10/4/16
to HotswapAgent
Hi,
Thanks a lot. I recompiled the agent yesterday and till now everything is fine.

It seems that patch fixed the issue completely.

Thanks and regards,
Dinko

vladimir dvorak

unread,
Oct 10, 2016, 9:07:23 AM10/10/16
to HotswapAgent
Great, thank you for feedback.
Reply all
Reply to author
Forward
0 new messages