首页 > 解决方案 > Spring boot from 1.3.2 to 1.5.22 throws OOM error

问题描述

Upgrading spring boot from 1.3.2 to 1.5.22 gives the following error:

java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.io.ByteArrayOutputStream.<init>(ByteArrayOutputStream.java:77)
at org.springframework.web.util.ContentCachingRequestWrapper.<init>(ContentCachingRequestWrapper.java:81)
at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:236)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.HttpWrapperFilter.doFilter(HttpWrapperFilter.java:27)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.form.service.CacheControlFilter.doFilter(CacheControlFilter.java:49)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.form.service.AddUrlFilter.doFilter(AddUrlFilter.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.form.datadog.AbstractInstrumentedFilterX.doFilter(AbstractInstrumentedFilterX.java:95)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:111)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.ms.filters.MSLoggerContextFilter.doFilter(MSLoggerContextFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.form.service.Oauth2ClientIDValidator.doFilter(Oauth2ClientIDValidator.java:101)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at ariba.ms.filters.ContextCreatingFilter.doFilter(ContextCreatingFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)

The applications build successful and starts successful but facing this exception while trying to access it.

标签: spring-boot

解决方案


我发现了这个错误的实际问题。它与 LoggingFilter Max payload 设置有关。它被错误地设置为 Integer.MAX_VALUE。因此OOM问题。虽然这似乎适用于 Spring-Boot 1.3.2


推荐阅读