[ 
http://www.stripesframework.org/jira/browse/STS-740?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ben Gunter resolved STS-740.
----------------------------

       Resolution: Fixed
    Fix Version/s: Release 1.5.4
         Assignee: Ben Gunter

I'm pretty certain the problem is that getFilterMethods(..)  was creating a new 
FilterMethods instance and immediately adding it to the cache and *then* 
proceeding to build the lists of methods associated with each lifecycle stage. 
It is during that building process that another request could grab the 
FilterMethods instance from the cache and try to iterate over one of those 
lists before it's completely built. I changed getFilterMethods(..) to fully 
construct the object before adding it to the cache. This could result in the 
construction process happening more than once, but that should be harmless.

> ConcurrentModificationException in BeforeAfterMethodInterceptor
> ---------------------------------------------------------------
>
>                 Key: STS-740
>                 URL: http://www.stripesframework.org/jira/browse/STS-740
>             Project: Stripes
>          Issue Type: Bug
>    Affects Versions: Release 1.5.3
>            Reporter: Ville Skyttä
>            Assignee: Ben Gunter
>            Priority: Minor
>             Fix For: Release 1.5.4
>
>         Attachments: stripes-concurrent.patch
>
>
> I happened to run into this shortly after starting up an application:
> java.util.ConcurrentModificationException
>       at 
> java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
>       at java.util.AbstractList$Itr.next(AbstractList.java:343)
>       at 
> net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:101)
>       at 
> net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155)
>       at 
> net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:74)
>       at 
> net.sourceforge.stripes.controller.DispatcherHelper.doBindingAndValidation(DispatcherHelper.java:214)
>       at 
> net.sourceforge.stripes.controller.DispatcherServlet.doBindingAndValidation(DispatcherServlet.java:254)
>       at 
> net.sourceforge.stripes.controller.DispatcherServlet.service(DispatcherServlet.java:148)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>       [...]
> I don't have a reproducer, but I suppose the cached FilterMethods object 
> might be returned too early while it's still being populated.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://www.stripesframework.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

------------------------------------------------------------------------------

_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to