Hi,

I recently upgraded to tapestry 5.3.3 from 5.0.1.x, and while running some
load tests using jmeter, I saw some new ConcurrentModificationException
errors. The test is simple, it just selects the first checkbox on the form,
then submits it.

It looks to me like there's a race condition in the new singleton page
handling. I don't think this problem is specific to my code because I've
seen this error in stack traces that don't include my compononets as well
when under significant load. (That stack trace is attached at the bottom,
below the logs produced by my code).

This might be related to
http://tapestry.1045711.n5.nabble.com/Rather-worrying-exception-with-5-2-4-java-util-ConcurrentModificationException-td3370588.html,
but my stack trace doesn't contain the method where the proposed patch would
be.

Here's my code:

<t:form id="RenewCheckoutsForm" context="context">
        ...
                        <t:loop source="currentCheckouts" 
encoder="checkoutsEncoder" value="item"
index="index">
                                ...
                                                        <t:checkbox 
t:value="currentCheckout" class="checkoutsCheckbox"/>
                                ...
                        </t:loop>
        ...
        <t:submit t:id="myCheckouts_checkoutslist_submit" class="hidden"
value="submit"/>
</t:form>


public class CheckoutsList {    
    @Property
    private List<CheckoutsInfoType> currentCheckouts;
    @Property
    private CheckoutsInfoType item;
        
    private List<String> selected = new ArrayList<String>();

        ...
        
    boolean setupRender(){
        log.info("CheckoutsList setuprender");
                ...
    }
        
    Object onSubmit(String friendlyUrl, SearchSession session){
        log.info("Submitted the form: selected.length = " +
selected.size());
        try
        {
            for(String id: selected){
                ...
            }
        }
        catch(ConcurrentModificationException e)
        {
            log.info("caught ConcurrentModificationException:
selected.length = " + selected.size(), e);
        }
        selected.clear();
        log.info("cleared out selected");
        return pageLinkSource.createPageRenderLinkWithContext(Account.class,
1, friendlyUrl, session);
    }

    public boolean getCurrentCheckout(){
        return selected.contains(item.getItemId());
    }
        
    /** set the selected value for the current checkout */
    public void setCurrentCheckout(final boolean val){
        if(item != null){
            if(val){
                log.info("adding to selected " + item.getItemId());
                selected.add(item.getItemId());
            }
            else {
                log.info("removing from selected " + item.getItemId());
                selected.remove(item.getItemId());
            }
        }
    }
        
        ...
}

Here in an excerpt from the logs under a significant load:

...
2012-05-23 17:08:28,261 [TP-Processor15] INFO  adding to selected 310000005
- com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,261 [TP-Processor15] INFO  Submitted the form:
selected.length = 1 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,282 [TP-Processor63] INFO  CheckoutsList setuprender -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,284 [TP-Processor23] INFO  adding to selected 310000028
- com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,284 [TP-Processor23] INFO  Submitted the form:
selected.length = 2 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,285 [TP-Processor83] INFO  CheckoutsList setuprender -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,307 [TP-Processor15] INFO  caught
ConcurrentModificationException: selected.length = 2 -
com.mycompany.product.module.components.search.account.CheckoutsList
java.util.ConcurrentModificationException
        at 
java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
        at java.util.AbstractList$Itr.next(AbstractList.java:343)
        at
com.mycompany.product.module.components.search.account.CheckoutsList.onSubmit(CheckoutsList.java:314)
        at
com.mycompany.product.module.components.search.account.CheckoutsList.dispatchComponentEvent(CheckoutsList.java)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:923)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1106)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3200(ComponentPageElementImpl.java:61)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1051)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1048)
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
        at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
        at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1047)
        at
org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.triggerContextEvent(InternalComponentResourcesImpl.java:302)
        at
org.apache.tapestry5.corelib.components.Form.advised$onAction_2290e07ed7404(Form.java:554)
        at
org.apache.tapestry5.corelib.components.Form$Invocation_onAction_2290e07ed7403.proceedToAdvisedMethod(Unknown
Source)
        at
org.apache.tapestry5.internal.plastic.AbstractMethodInvocation.proceed(AbstractMethodInvocation.java:84)
        at
org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(LoggingAdvice.java:37)
        at
org.apache.tapestry5.internal.plastic.AbstractMethodInvocation.proceed(AbstractMethodInvocation.java:86)
        at org.apache.tapestry5.corelib.components.Form.onAction(Form.java)
        at
org.apache.tapestry5.corelib.components.Form.dispatchComponentEvent(Form.java)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:923)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1106)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3200(ComponentPageElementImpl.java:61)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1051)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1048)
        at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
        at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
        at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1047)
        at
org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:110)
        at
org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56)
        at $ComponentEventRequestHandler_2290e07ed76b6.handle(Unknown Source)
        at $ComponentEventRequestHandler_2290e07ed76ae.handle(Unknown Source)
        at
org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
        at $ComponentEventRequestHandler_2290e07ed76b0.handle(Unknown Source)
        at
org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
        at $ComponentEventRequestHandler_2290e07ed76b0.handle(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$40.handle(TapestryModule.java:2456)
        at $ComponentEventRequestHandler_2290e07ed76b0.handle(Unknown Source)
        at $ComponentEventRequestHandler_2290e07ed7366.handle(Unknown Source)
        at
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
        at
org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39)
        at $ComponentRequestHandler_2290e07ed7368.handleComponentEvent(Unknown
Source)
        at $ComponentRequestHandler_2290e07ed732f.handleComponentEvent(Unknown
Source)
        at
org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)
        at $Dispatcher_2290e07ed7332.dispatch(Unknown Source)
        at $Dispatcher_2290e07ed7204.dispatch(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302)
        at
nu.localhost.tapestry5.springsecurity.services.internal.RequestFilterWrapper$1.doFilter(RequestFilterWrapper.java:60)
        at
nu.localhost.tapestry5.springsecurity.services.internal.SpringSecurityExceptionTranslationFilter.doFilter(SpringSecurityExceptionTranslationFilter.java:89)
        at
nu.localhost.tapestry5.springsecurity.services.internal.RequestFilterWrapper.service(RequestFilterWrapper.java:55)
        at $RequestHandler_2290e07ed7205.service(Unknown Source)
        at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
        at $RequestHandler_2290e07ed7205.service(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902)
        at $RequestHandler_2290e07ed7205.service(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892)
        at $RequestHandler_2290e07ed7205.service(Unknown Source)
        at
com.mycompany.product.module.framework.SecurityFilter.service(SecurityFilter.java:65)
        at $RequestHandler_2290e07ed7205.service(Unknown Source)
        at
com.mycompany.product.module.framework.ProfileFilter.service(ProfileFilter.java:148)
        at $RequestHandler_2290e07ed7205.service(Unknown Source)
        at
com.mycompany.product.module.framework.WebResourceFilter.service(WebResourceFilter.java:39)
        at $RequestHandler_2290e07ed7205.service(Unknown Source)
        at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
        at $RequestHandler_2290e07ed7205.service(Unknown Source)
        at
com.mycompany.product.module.services.AppModule$4.service(AppModule.java:959)
        at $RequestFilter_2290e07ed71f9.service(Unknown Source)
        at $RequestHandler_2290e07ed7205.service(Unknown Source)
        at $RequestHandler_2290e07ed71f1.service(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
        at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestFilter_2290e07ed71ef.service(Unknown Source)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
nu.localhost.tapestry5.springsecurity.services.internal.SpringSecurityExceptionTranslationFilter.doFilter(SpringSecurityExceptionTranslationFilter.java:89)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestFilter_2290e07ed71ee.service(Unknown Source)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestFilter_2290e07ed71ed.service(Unknown Source)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestFilter_2290e07ed71ec.service(Unknown Source)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestFilter_2290e07ed71eb.service(Unknown Source)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestFilter_2290e07ed71ea.service(Unknown Source)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
com.mycompany.product.module.framework.EmbeddedSearchBoxFilter.service(EmbeddedSearchBoxFilter.java:79)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
com.mycompany.product.module.framework.IpnListener.service(IpnListener.java:93)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
com.mycompany.product.module.framework.ExternalResourceFilter.service(ExternalResourceFilter.java:61)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
com.mycompany.product.module.framework.AbsolutePathFilter.service(AbsolutePathFilter.java:43)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
com.mycompany.product.module.framework.IpAddressFilter.service(IpAddressFilter.java:36)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
        at $HttpServletRequestFilter_2290e07ed71e8.service(Unknown Source)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
        at $HttpServletRequestHandler_2290e07ed71f3.service(Unknown Source)
        at $HttpServletRequestHandler_2290e07ed71df.service(Unknown Source)
        at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at
org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:495)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:744)
        at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:674)
        at
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:866)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:662)
2012-05-23 17:08:28,311 [TP-Processor15] INFO  cleared out selected -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,320 [TP-Processor23] INFO  caught
ConcurrentModificationException: selected.length = 0 -
com.mycompany.product.module.components.search.account.CheckoutsList
java.util.ConcurrentModificationException
        at 
java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
        at java.util.AbstractList$Itr.next(AbstractList.java:343)
        at
com.mycompany.product.module.components.search.account.CheckoutsList.onSubmit(CheckoutsList.java:314)
        ...
2012-05-23 17:08:28,321 [TP-Processor23] INFO  cleared out selected -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,354 [TP-Processor38] INFO  adding to selected
31070000112090 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,354 [TP-Processor38] INFO  Submitted the form:
selected.length = 1 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,392 [TP-Processor38] INFO  cleared out selected -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,396 [TP-Processor83] INFO  adding to selected
31070000341749 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,397 [TP-Processor83] INFO  Submitted the form:
selected.length = 1 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,412 [TP-Processor63] INFO  adding to selected 310000008
- com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,413 [TP-Processor63] INFO  Submitted the form:
selected.length = 2 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,439 [TP-Processor83] INFO  caught
ConcurrentModificationException: selected.length = 2 -
com.mycompany.product.module.components.search.account.CheckoutsList
java.util.ConcurrentModificationException
        at 
java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
        at java.util.AbstractList$Itr.next(AbstractList.java:343)
        at
com.mycompany.product.module.components.search.account.CheckoutsList.onSubmit(CheckoutsList.java:314)
        ...
2012-05-23 17:08:28,440 [TP-Processor83] INFO  cleared out selected -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,450 [TP-Processor63] INFO  caught
ConcurrentModificationException: selected.length = 0 -
com.mycompany.product.module.components.search.account.CheckoutsList
java.util.ConcurrentModificationException
        at 
java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
        at java.util.AbstractList$Itr.next(AbstractList.java:343)
        at
com.mycompany.product.module.components.search.account.CheckoutsList.onSubmit(CheckoutsList.java:314)
        ...
2012-05-23 17:08:28,451 [TP-Processor63] INFO  cleared out selected -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,756 [TP-Processor24] INFO  CheckoutsList setuprender -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,898 [TP-Processor10] INFO  adding to selected
31070000524179 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,898 [TP-Processor10] INFO  Submitted the form:
selected.length = 1 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,915 [TP-Processor29] INFO  CheckoutsList setuprender -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:28,943 [TP-Processor10] INFO  cleared out selected -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,034 [TP-Processor29] INFO  adding to selected
0107100050460 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,034 [TP-Processor29] INFO  Submitted the form:
selected.length = 1 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,082 [TP-Processor29] INFO  cleared out selected -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,110 [TP-Processor38] INFO  CheckoutsList setuprender -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,209 [TP-Processor83] INFO  CheckoutsList setuprender -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,222 [TP-Processor10] INFO  Submitted the form:
selected.length = 0 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,222 [TP-Processor10] INFO  cleared out selected -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,272 [TP-Processor73] INFO  CheckoutsList setuprender -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,284 [TP-Processor30] INFO  CheckoutsList setuprender -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,288 [TP-Processor24] INFO  CheckoutsList setuprender -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,350 [TP-Processor83] INFO  adding to selected
31070000335402 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,351 [TP-Processor83] INFO  Submitted the form:
selected.length = 1 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,429 [TP-Processor83] INFO  cleared out selected -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,437 [TP-Processor73] INFO  adding to selected
0107100184905 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,438 [TP-Processor73] INFO  Submitted the form:
selected.length = 1 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,451 [TP-Processor30] INFO  adding to selected
31070000162012 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,451 [TP-Processor30] INFO  Submitted the form:
selected.length = 2 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,454 [TP-Processor28] INFO  adding to selected 310000557
- com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,455 [TP-Processor28] INFO  Submitted the form:
selected.length = 3 -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,502 [TP-Processor73] INFO  caught
ConcurrentModificationException: selected.length = 3 -
com.mycompany.product.module.components.search.account.CheckoutsList
java.util.ConcurrentModificationException
        at 
java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
        at java.util.AbstractList$Itr.next(AbstractList.java:343)
        at
com.mycompany.product.module.components.search.account.CheckoutsList.onSubmit(CheckoutsList.java:314)
        ...
2012-05-23 17:08:29,502 [TP-Processor73] INFO  cleared out selected -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,515 [TP-Processor30] INFO  caught
ConcurrentModificationException: selected.length = 0 -
com.mycompany.product.module.components.search.account.CheckoutsList
java.util.ConcurrentModificationException
        at 
java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
        at java.util.AbstractList$Itr.next(AbstractList.java:343)
        at
com.mycompany.product.module.components.search.account.CheckoutsList.onSubmit(CheckoutsList.java:314)
        ...
2012-05-23 17:08:29,516 [TP-Processor30] INFO  cleared out selected -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,523 [TP-Processor28] INFO  caught
ConcurrentModificationException: selected.length = 0 -
com.mycompany.product.module.components.search.account.CheckoutsList
java.util.ConcurrentModificationException
        at 
java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
        at java.util.AbstractList$Itr.next(AbstractList.java:343)
        at
com.mycompany.product.module.components.search.account.CheckoutsList.onSubmit(CheckoutsList.java:314)
        ...
2012-05-23 17:08:29,523 [TP-Processor28] INFO  cleared out selected -
com.mycompany.product.module.components.search.account.CheckoutsList
2012-05-23 17:08:29,543 [TP-Processor15] INFO  CheckoutsList setuprender -
com.mycompany.product.module.components.search.account.CheckoutsList
...


And here is the stack trace not originating directly from my code:

2012-05-23 13:34:32,890 [TP-Processor19] ERROR Render queue error in
BeginRender[search/Results:limitcolumn.loop]:
org.apache.tapestry5.ioc.internal.util.TapestryException -
tapestry.render.com.mycompany.product.module.pages.search.Results
org.apache.tapestry5.ioc.internal.util.TapestryException [at
classpath:com/mycompany/mycompany/module/components/search/LimitColumn.tml,
line 71]
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:153)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeginRenderPhase.render(ComponentPageElementImpl.java:209)
        at
org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72)
        at
org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:124)
        at $PageRenderQueue_21c3877bae5e7.render(Unknown Source)
        at $PageRenderQueue_21c3877bae5e6.render(Unknown Source)
        at
org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37)
        at
org.apache.tapestry5.services.TapestryModule$30.renderMarkup(TapestryModule.java:1979)
        at $MarkupRenderer_21c3877bae5ea.renderMarkup(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1963)
        at $MarkupRenderer_21c3877bae5ea.renderMarkup(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1945)
        at $MarkupRenderer_21c3877bae5ea.renderMarkup(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1930)
        at $MarkupRenderer_21c3877bae5ea.renderMarkup(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1916)
        at $MarkupRenderer_21c3877bae5ea.renderMarkup(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1898)
        at $MarkupRenderer_21c3877bae5ea.renderMarkup(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1879)
        at $MarkupRenderer_21c3877bae5ea.renderMarkup(Unknown Source)
        at $MarkupRenderer_21c3877bae5e5.renderMarkup(Unknown Source)
        at
org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:47)
        at $PageMarkupRenderer_21c3877bae5e3.renderPageMarkup(Unknown Source)
        at
org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67)
        at $PageResponseRenderer_21c3877bae41e.renderPageResponse(Unknown 
Source)
        at
org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:64)
        at
org.apache.tapestry5.services.TapestryModule$37.handle(TapestryModule.java:2207)
        at $PageRenderRequestHandler_21c3877bae420.handle(Unknown Source)
        at $PageRenderRequestHandler_21c3877bae41a.handle(Unknown Source)
        at
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48)
        at
org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47)
        at $ComponentRequestHandler_21c3877bae41b.handlePageRender(Unknown 
Source)
        at $ComponentRequestHandler_21c3877bae3e2.handlePageRender(Unknown 
Source)
        at
org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45)
        at $Dispatcher_21c3877bae3e5.dispatch(Unknown Source)
        at $Dispatcher_21c3877bae2b7.dispatch(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302)
        at
com.mycompany.product.module.framework.SecurityFilter.service(SecurityFilter.java:65)
        at $RequestHandler_21c3877bae2b8.service(Unknown Source)
        at
com.mycompany.product.module.framework.ProfileFilter.service(ProfileFilter.java:148)
        at $RequestHandler_21c3877bae2b8.service(Unknown Source)
        at
com.mycompany.product.module.framework.WebResourceFilter.service(WebResourceFilter.java:39)
        at $RequestHandler_21c3877bae2b8.service(Unknown Source)
        at
com.mycompany.product.module.services.AppModule$4.service(AppModule.java:959)
        at $RequestFilter_21c3877bae2ac.service(Unknown Source)
        at $RequestHandler_21c3877bae2b8.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.RequestFilterWrapper$1.doFilter(RequestFilterWrapper.java:60)
        at
nu.localhost.tapestry5.springsecurity.services.internal.SpringSecurityExceptionTranslationFilter.doFilter(SpringSecurityExceptionTranslationFilter.java:89)
        at
nu.localhost.tapestry5.springsecurity.services.internal.RequestFilterWrapper.service(RequestFilterWrapper.java:55)
        at $RequestHandler_21c3877bae2b8.service(Unknown Source)
        at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
        at $RequestHandler_21c3877bae2b8.service(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902)
        at $RequestHandler_21c3877bae2b8.service(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892)
        at $RequestHandler_21c3877bae2b8.service(Unknown Source)
        at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
        at $RequestHandler_21c3877bae2b8.service(Unknown Source)
        at $RequestHandler_21c3877bae2a4.service(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253)
        at
com.mycompany.product.module.framework.EmbeddedSearchBoxFilter.service(EmbeddedSearchBoxFilter.java:79)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
com.mycompany.product.module.framework.IpnListener.service(IpnListener.java:93)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
com.mycompany.product.module.framework.ExternalResourceFilter.service(ExternalResourceFilter.java:61)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
com.mycompany.product.module.framework.AbsolutePathFilter.service(AbsolutePathFilter.java:43)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
com.mycompany.product.module.framework.IpAddressFilter.service(IpAddressFilter.java:36)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
        at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestFilter_21c3877bae299.service(Unknown Source)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
nu.localhost.tapestry5.springsecurity.services.internal.SpringSecurityExceptionTranslationFilter.doFilter(SpringSecurityExceptionTranslationFilter.java:89)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestFilter_21c3877bae298.service(Unknown Source)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestFilter_21c3877bae297.service(Unknown Source)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestFilter_21c3877bae296.service(Unknown Source)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestFilter_21c3877bae295.service(Unknown Source)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:56)
        at
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at $HttpServletRequestFilter_21c3877bae294.service(Unknown Source)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
        at $HttpServletRequestFilter_21c3877bae2a2.service(Unknown Source)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at
org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
        at $HttpServletRequestHandler_21c3877bae2a6.service(Unknown Source)
        at $HttpServletRequestHandler_21c3877bae292.service(Unknown Source)
        at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at
org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:495)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:744)
        at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:674)
        at
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:866)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.util.ConcurrentModificationException
        at 
java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
        at java.util.AbstractList$Itr.next(AbstractList.java:343)
        at org.apache.tapestry5.corelib.components.Loop.begin(Loop.java:386)
        at org.apache.tapestry5.corelib.components.Loop.beginRender(Loop.java)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeginRenderPhase.invokeComponent(ComponentPageElementImpl.java:202)
        at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:133)
        ... 130 more
        
Thanks in advance,
Sean

--
View this message in context: 
http://tapestry.1045711.n5.nabble.com/java-util-ConcurrentModificationException-in-tapestry-5-3-3-under-stress-tp5713368.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to