VikramG
VikramG

Reputation: 73

java.lang.StackOverflowError with Spring Boot Actuator & Tomcat

I have a spring-boot application with spring-boot-starter-actuator enabled. If I deploy the war file into a tomcat container, I get a stack overflow when I hit unmapped uri.

2014-06-03 17:24:28,312 WARN  [http-bio-8080-exec-3]             o.s.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/catalog/products] in DispatcherServlet with name 'dispatcherServlet'
    Exception in thread "http-bio-8080-exec-3" java.lang.StackOverflowError
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
at org.springframework.boot.context.web.ErrorPageFilter.setErrorAttributes(ErrorPageFilter.java:164)
at org.springframework.boot.context.web.ErrorPageFilter.handleException(ErrorPageFilter.java:131)
at org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:104)
at org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:85)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at org.springframework.boot.context.web.ErrorPageFilter.handleException(ErrorPageFilter.java:135)
at org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:104)
at org.springframework.boot.context.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:85)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)

I tried implementing the ErrorController, but it did not work. Did anyone see similar issue? What could be causing this?

But if I run using the embedded tomcat server, everything looks good with the white label error page displayed. For various operational reasons, I need to run the app inside a tomcat container. Any help is highly appreciated.

Update: I narrowed it down to a filter that wraps servlet request & response. I am at a loss to explain why it has issues when both this filter and actuator are included in a tomcat container. It works fine when either one of them is not included. I have created a sample app with just enough code to replicate it here in a Sample Code

Upvotes: 1

Views: 3358

Answers (1)

user3889684
user3889684

Reputation: 26

Looks like this is a bug with Spring Boot 1.1.4. Check out https://github.com/spring-projects/spring-boot/issues/1343. Fixed in version 1.1.5.

Upvotes: 1

Related Questions