[#5541] - StackOverflowError due to recursion in File ExportExecution for Visualize.JS

Category:
Bug report
Priority:
High
Status:
New
Project: Severity:
Minor
Resolution:
Open
Component: Reproducibility:
Always
Assigned to:

In class com.jaspersoft.jasperserver.remote.services.ExportExecution line 153 the recursive call leads to StackOverflowError in combination with visualize.js.

Here is the log excerpt:

2015-09-01 16:03:07,505 ERROR SystemErrorController,http-bio-8080-exec-74:81 - Internal server error
javax.servlet.ServletException: java.lang.StackOverflowError
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:418)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.jaspersoft.jasperserver.war.StaticFilesCacheControlFilter.doFilter(StaticFilesCacheControlFilter.java:163)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.jaspersoft.jasperserver.api.metadata.user.service.impl.MetadataAuthenticationProcessingFilter.doFilter(MetadataAuthenticationProcessingFilter.java:170)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.jaspersoft.jasperserver.war.util.RequestParameterAuthenticationFilter.doFilter(RequestParameterAuthenticationFilter.java:99)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.jaspersoft.jasperserver.multipleTenancy.MTBasicProcessingFilter.doFilter(MTBasicProcessingFilter.java:194)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.jaspersoft.jasperserver.war.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:217)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.jaspersoft.jasperserver.war.NullFilter.doFilter(NullFilter.java:43)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.jaspersoft.jasperserver.war.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:217)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.jaspersoft.jasperserver.api.logging.filter.BasicLoggingFilter.doFilter(BasicLoggingFilter.java:57)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.jaspersoft.jasperserver.api.security.JSCsrfGuardFilter.doFilter(JSCsrfGuardFilter.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.jaspersoft.jasperserver.api.security.WebAppSecurityFilter.doFilter(WebAppSecurityFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.jaspersoft.jasperserver.war.NullFilter.doFilter(NullFilter.java:43)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.jaspersoft.jasperserver.api.security.encryption.EncryptionFilter.doFilter(EncryptionFilter.java:150)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.jaspersoft.ji.license.JILicenseFilter.doFilter(JILicenseFilter.java:86)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.jaspersoft.jasperserver.war.util.SessionDecoratorFilter.doFilter(SessionDecoratorFilter.java:63)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.jaspersoft.jasperserver.war.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:67)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.jaspersoft.jasperserver.war.P3PFilter.doFilter(P3PFilter.java:43)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:613)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.StackOverflowError
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)
at com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155)

v6.1
micdaum's picture
100
Joined: Apr 13 2012 - 7:43am
Last seen: 3 years 1 month ago

3 Comments:

#1
  • Resolution:Open» Won't Fix

We're using standard JRS 6.1 linux installation with included Java and Postgres on Ubuntu.
We created several reports (simple text field reports, highcharts reports, table reports) which we are loading using visualize.js on an html page. When requesting or rerunning the reports via visualize.js sometimes one or another report is not rendered. In the JavaScript console we see an Internal Server Error (500) with a StackOverflowError. At the same time in the JRS log the pasted error appears which leads us to the suspicious line
com.jaspersoft.jasperserver.remote.services.ExportExecution.getFinalOutputResource(ExportExecution.java:155) which dives into an endless recursion. For now we wrapped the request on the frontend side in our JavaScript where we catch the 500 error and retry the request for a few times. Usually the retry does not fall into the endless recursion in JRS and the chart is rendered. Still it's not nice having a StackOverflowError constantly in the server.

#2
  • Priority:Normal» High
  • Resolution:Won't Fix» Open

What was the resolution here? Are we expected to handle 500 and reload the report? I'm facing similar issue and it can be consistently reproduced.

#3

Did you get a solution? or still manually handling the 500 error?

Feedback