Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.1
-
Fix Version/s: 1.3.7
-
Component/s: None
-
Labels:None
-
Environment:This has been reproduced in Tomcat 6.x
Description
Sometimes, and with no apparent reason, I get a infinite loop of StackOverflowError's, resulting on gigas of logfiles
.
The application is a production one, usually stable, using Grails 1.1. The error is:
GRAVE: El Servlet.service() para servlet grails lanzó una excepción
java.lang.StackOverflowError
at org.apache.catalina.connector.RequestFacade.getAttribute(RequestFacade.java:263)
at org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:222)
at org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:222)
at org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:222)
[... tons of this one ...]
at org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:222)
at org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:222)
at org.apache.catalina.core.ApplicationHttpRequest.getAttribute(ApplicationHttpRequest.java:222)
at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequest.getControllerName(GrailsWebRequest.java:184)
at sun.reflect.GeneratedMethodAccessor2855.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1584)
at groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:938)
at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3275)
at groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:951)
at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:158)
at org.codehaus.groovy.runtime.callsite.PojoMetaClassGetPropertySite.callGetProperty(PojoMetaClassGetPropertySite.java:41)
at org.codehaus.groovy.grails.web.plugins.support.WebMetaUtils$_registerCommonWebProperties_closure10.doCall(WebMetaUtils.groovy:87)
at sun.reflect.GeneratedMethodAccessor657.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaMethod.invoke(ClosureMetaMethod.java:81)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1584)
at groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:938)
at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3275)
at groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:951)
at org.codehaus.groovy.grails.plugins.web.filters.FilterConfig.getProperty(FilterConfig.groovy)
at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:153)
at groovy.lang.Closure.getPropertyTryThese(Closure.java:187)
at groovy.lang.Closure.getPropertyDelegateFirst(Closure.java:180)
at groovy.lang.Closure.getProperty(Closure.java:165)
at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:153)
at groovy.lang.Closure.getPropertyTryThese(Closure.java:187)
at groovy.lang.Closure.getPropertyOwnerFirst(Closure.java:203)
at groovy.lang.Closure.getProperty(Closure.java:173)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:47)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:240)
at SecurityFilters$_closure1_closure2_closure6.doCall(SecurityFilters.groovy:12)
[... thousand lines to follow ...]
Our affected class is:
at SecurityFilters$_closure1_closure2_closure6.doCall(SecurityFilters.groovy:12)
SecurityFilters.groovy:12 is
if (controllerName != 'auth') {
The last class in the stack just before the loop is:
org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequest.getControllerName(GrailsWebRequest.java:184)
Attach an example that reproduces the problem