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