You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Christopher Schultz <ch...@christopherschultz.net> on 2018/02/09 19:24:15 UTC
StackOverflow when setting request attribute
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
All,
I've been starting to see these lately in my dev environment, which is
currently running 8.5.28:
Caused by: java.lang.StackOverflowError
at
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(Application
HttpRequest.java:304)
at
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(Application
HttpRequest.java:304)
at
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(Application
HttpRequest.java:304)
at
[etc.]
It looks like the only way that should happen is when a request is set
as the parent of itself.
I'm fairly confident we don't play any games with request objects. We
certain never call ApplicationHttpRequest.setRequest() and I doubt any
library code is doing that, either.
I haven't yet been able to reproduce it, but I can see instances in my
log files.
It looks to be related to another error:
java.lang.IllegalStateException: Cannot create a session after the
response has been committed
Also, the stack trace from above (farther up the stack) looks like
it's recursively calling the service-dispatcher:
[...]
at
org.apache.catalina.core.ApplicationHttpRequest.setAttribute(Application
HttpRequest.java:304)
at
javax.servlet.ServletRequestWrapper.setAttribute(ServletRequestWrapper.j
ava:252)
at
org.apache.struts.util.ModuleUtils.selectModule(ModuleUtils.java:244)
at
org.apache.struts.util.ModuleUtils.selectModule(ModuleUtils.java:227)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1903)
at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:231)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:166)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:728)
at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDisp
atcher.java:591)
at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispat
cher.java:527)
at
org.apache.struts.action.ExceptionHandler.handleCommittedResponse(Except
ionHandler.java:207)
at
org.apache.struts.action.ExceptionHandler.execute(ExceptionHandler.java:
165)
at
org.apache.struts.chain.commands.servlet.ExceptionHandler.handle(Excepti
onHandler.java:65)
at
org.apache.struts.chain.commands.AbstractExceptionHandler.execute(Abstra
ctExceptionHandler.java:99)
at
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommand
Base.java:51)
at
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at
org.apache.struts.chain.commands.ExceptionCatcher.postprocess(ExceptionC
atcher.java:163)
at
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:210)
at
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableReq
uestProcessor.java:283)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
[etc.]
Any ideas as to what could be happening, here?
I might be able to actually "catch(StackOverflowError)" in a Filter or
something and grab some additional information about the request, but
so far I'm sorry to say that I can't reproduce it on demand.
Thanks,
- -chris
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQJRBAEBCAA7FiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAlp99V8dHGNocmlzQGNo
cmlzdG9waGVyc2NodWx0ei5uZXQACgkQHPApP6U8pFjOlg/+JwfrOZiO3ocxfJWg
i/SXKznXdYrVRXpaisVGStRIv4DIU5ShJ0UJEQIrNDEE3HqkhW8gNr+Cm+rM3siS
FMsDXYVWixmwG/IBH40o38SERP8Y6rsuBEUo795T8DfxRNC0mmxmULyilYOCHtmP
pEBBUeBBsZJuzTe62aPGyJ2pE3e6AsLLeO8wr5k5BuL/xaQ+xyz2+v2rSqtnxKVH
iCEfaKd/af/3j+dDwkBSS7swNgvoBExXYDvhRpHFSXQW3mrJxFmYQeusC2MYQAer
7rBikugD1IE5BqbfgFo51o+ykxpPw9E/ysgUy6qqwkQoRwOYHTzihguaThd/amhJ
rxhjG78oUVmDyuxADtAFVj7Deh1SsROVUz1TJHY4j3kgtaeccNVeeAoQGbbdzCIB
YR5rTXqSvBs3d9FwK67N5FWfSxj8WB7kyjCwenaQSEVktBvU5fu6VXlV5oFa02N7
KTZ/n6RJxGV5irx7YVCvAXU+0ypuD1WCqmbIo6AkZ0IrgNRrN4weFrQ7whKAWzjT
oY1yXSeA3DKoQE5I1jAvjCwAlb8Y1j6M0NFW8cqIVN/iSGwXbAvVd8sxx38aIn52
E7vIKHfBKqFiv2N69+El1hSqFje9Z05cdFqGr4Hq+O3szkqgdnGVWRKO20ZGpHAq
G2yKRrGuHi0/mgSBDQt9x8hL710=
=5DqY
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org