You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by antalk <an...@intercommit.nl> on 2011/02/04 09:10:12 UTC

Rather worrying exception with 5.2.4 (java.util.ConcurrentModificationException)

Hi,

Last month i've upgraded our internally used website from Tap 5.1 to 5.2.4,
all went well until i found this disturbing exception in the error log: 


ERROR 2011-02-03 17:42:56,303 [TP-Processor7][]
org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler -
Processing of
 request failed with uncaught exception: Unable to attach page
documents/Received (en): java.util.ConcurrentModificationException
java.lang.RuntimeException: Unable to attach page documents/Received (en):
java.util.ConcurrentModificationException
        at
org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:82)
        at
$RequestPageCache_12dec607e45.get($RequestPageCache_12dec607e45.java)
        at
$RequestPageCache_12dec607e3f.get($RequestPageCache_12dec607e3f.java)
        at
org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:70)
        at
org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56)
        at
$ComponentEventRequestHandler_12dec608113.handle($ComponentEventRequestHandler_12dec608113.java)
        at
$ComponentEventRequestHandler_12dec60810e.handle($ComponentEventRequestHandler_12dec60810e.java)
        at
org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
        at
$ComponentEventRequestHandler_12dec60810f.handle($ComponentEventRequestHandler_12dec60810f.java)
        at
org.apache.tapestry5.services.TapestryModule$39.handle(TapestryModule.java:2583)
        at
$ComponentEventRequestHandler_12dec60810f.handle($ComponentEventRequestHandler_12dec60810f.java)
        at
$ComponentEventRequestHandler_12dec607e3c.handle($ComponentEventRequestHandler_12dec607e3c.java)
        at
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)


I have however no clue as who clicked what and where but this seems like
some sort of bug in the new none-pooling page implementation ?

Best regards,
 Antal




-- 
View this message in context: http://tapestry.1045711.n5.nabble.com/Rather-worrying-exception-with-5-2-4-java-util-ConcurrentModificationException-tp3370588p3370588.html
Sent from the Tapestry - Dev mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: Rather worrying exception with 5.2.4 (java.util.ConcurrentModificationException)

Posted by Howard Lewis Ship <hl...@gmail.com>.
That is worrying, but I'd appreciate if you can get the more complete
stack track from the console. It looks like the failure was inside
page.attached() ... and that could be just about anything.  It is
likely a 3rd party library that is not fully compatible with 5.2.4,
and it would be good for everyone to figure out which one.

On Fri, Feb 4, 2011 at 12:10 AM, antalk <an...@intercommit.nl> wrote:
>
> Hi,
>
> Last month i've upgraded our internally used website from Tap 5.1 to 5.2.4,
> all went well until i found this disturbing exception in the error log:
>
>
> ERROR 2011-02-03 17:42:56,303 [TP-Processor7][]
> org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler -
> Processing of
>  request failed with uncaught exception: Unable to attach page
> documents/Received (en): java.util.ConcurrentModificationException
> java.lang.RuntimeException: Unable to attach page documents/Received (en):
> java.util.ConcurrentModificationException
>        at
> org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:82)
>        at
> $RequestPageCache_12dec607e45.get($RequestPageCache_12dec607e45.java)
>        at
> $RequestPageCache_12dec607e3f.get($RequestPageCache_12dec607e3f.java)
>        at
> org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:70)
>        at
> org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56)
>        at
> $ComponentEventRequestHandler_12dec608113.handle($ComponentEventRequestHandler_12dec608113.java)
>        at
> $ComponentEventRequestHandler_12dec60810e.handle($ComponentEventRequestHandler_12dec60810e.java)
>        at
> org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
>        at
> $ComponentEventRequestHandler_12dec60810f.handle($ComponentEventRequestHandler_12dec60810f.java)
>        at
> org.apache.tapestry5.services.TapestryModule$39.handle(TapestryModule.java:2583)
>        at
> $ComponentEventRequestHandler_12dec60810f.handle($ComponentEventRequestHandler_12dec60810f.java)
>        at
> $ComponentEventRequestHandler_12dec607e3c.handle($ComponentEventRequestHandler_12dec607e3c.java)
>        at
> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>
>
> I have however no clue as who clicked what and where but this seems like
> some sort of bug in the new none-pooling page implementation ?
>
> Best regards,
>  Antal
>
>
>
>
> --
> View this message in context: http://tapestry.1045711.n5.nabble.com/Rather-worrying-exception-with-5-2-4-java-util-ConcurrentModificationException-tp3370588p3370588.html
> Sent from the Tapestry - Dev mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: dev-help@tapestry.apache.org
>
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: Rather worrying exception with 5.2.4 (java.util.ConcurrentModificationException)

Posted by antalk <an...@intercommit.nl>.
Ok, here comes the complete stacktrace:

ERROR 2011-02-03 17:42:56,303 [TP-Processor7][]
org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler -
Processing of request failed with uncaugh
t exception: Unable to attach page documents/Received (en):
java.util.ConcurrentModificationException
java.lang.RuntimeException: Unable to attach page documents/Received (en):
java.util.ConcurrentModificationException
        at
org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:82)
        at
$RequestPageCache_12dec607e45.get($RequestPageCache_12dec607e45.java)
        at
$RequestPageCache_12dec607e3f.get($RequestPageCache_12dec607e3f.java)
        at
org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:70)
        at
org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56)
        at
$ComponentEventRequestHandler_12dec608113.handle($ComponentEventRequestHandler_12dec608113.java)
        at
$ComponentEventRequestHandler_12dec60810e.handle($ComponentEventRequestHandler_12dec60810e.java)
        at
org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
        at
$ComponentEventRequestHandler_12dec60810f.handle($ComponentEventRequestHandler_12dec60810f.java)
        at
org.apache.tapestry5.services.TapestryModule$39.handle(TapestryModule.java:2583)
        at
$ComponentEventRequestHandler_12dec60810f.handle($ComponentEventRequestHandler_12dec60810f.java)
        at
$ComponentEventRequestHandler_12dec607e3c.handle($ComponentEventRequestHandler_12dec607e3c.java)
        at
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
        at
org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39)
        at
$ComponentRequestHandler_12dec607e3e.handleComponentEvent($ComponentRequestHandler_12dec607e3e.java)
        at
$ComponentRequestHandler_12dec607e22.handleComponentEvent($ComponentRequestHandler_12dec607e22.java)
        at
org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)
        at $Dispatcher_12dec607e26.dispatch($Dispatcher_12dec607e26.java)
        at $Dispatcher_12dec607e1f.dispatch($Dispatcher_12dec607e1f.java)
        at
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:321)
        at
us.antera.t5restfulws.services.impl.RestfulWSDispatcher.service(RestfulWSDispatcher.java:79)
        at
$RequestHandler_12dec607e20.service($RequestHandler_12dec607e20.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.RequestFilterWrapper$1.doFilter(RequestFilterWrapper.java:60)
        at
nu.localhost.tapestry5.springsecurity.services.internal.SpringSecurityExceptionTranslationFilter.doFilter(SpringSecurityExceptionTranslationFilter.ja
va:90)
        at
nu.localhost.tapestry5.springsecurity.services.internal.RequestFilterWrapper.service(RequestFilterWrapper.java:55)
        at
$RequestHandler_12dec607e20.service($RequestHandler_12dec607e20.java)
        at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
        at
$RequestHandler_12dec607e20.service($RequestHandler_12dec607e20.java)
        at
org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:984)
        at
$RequestHandler_12dec607e20.service($RequestHandler_12dec607e20.java)
        at
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:974)
        at
$RequestHandler_12dec607e20.service($RequestHandler_12dec607e20.java)
        at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
        at
$RequestHandler_12dec607e20.service($RequestHandler_12dec607e20.java)
        at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
        at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:80)
        at
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
        at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
        at
$RequestHandler_12dec607e20.service($RequestHandler_12dec607e20.java)
        at
$RequestHandler_12dec607e11.service($RequestHandler_12dec607e11.java)
        at
org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:272)
        at
org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
        at
$HttpServletRequestHandler_12dec607e13.service($HttpServletRequestHandler_12dec607e13.java)
        at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
        at
$HttpServletRequestFilter_12dec607e10.service($HttpServletRequestFilter_12dec607e10.java)
        at
$HttpServletRequestHandler_12dec607e13.service($HttpServletRequestHandler_12dec607e13.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
        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_12dec607e0d.service($HttpServletRequestFilter_12dec607e0d.java)
        at
$HttpServletRequestHandler_12dec607e13.service($HttpServletRequestHandler_12dec607e13.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
nu.localhost.tapestry5.springsecurity.services.internal.SpringSecurityExceptionTranslationFilter.doFilter(SpringSecurityExceptionTranslationFilter.ja
va:90)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at
$HttpServletRequestHandler_12dec607e13.service($HttpServletRequestHandler_12dec607e13.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at
$HttpServletRequestFilter_12dec607e0c.service($HttpServletRequestFilter_12dec607e0c.java)
        at
$HttpServletRequestHandler_12dec607e13.service($HttpServletRequestHandler_12dec607e13.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        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_12dec607e0b.service($HttpServletRequestFilter_12dec607e0b.java)
        at
$HttpServletRequestHandler_12dec607e13.service($HttpServletRequestHandler_12dec607e13.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at
$HttpServletRequestFilter_12dec607e0a.service($HttpServletRequestFilter_12dec607e0a.java)
        at
$HttpServletRequestHandler_12dec607e13.service($HttpServletRequestHandler_12dec607e13.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at
$HttpServletRequestFilter_12dec607e09.service($HttpServletRequestFilter_12dec607e09.java)
        at
$HttpServletRequestHandler_12dec607e13.service($HttpServletRequestHandler_12dec607e13.java)
        at
nl.intercommit.godocument.services.AppModule$1.service(AppModule.java:414)
        at
$HttpServletRequestHandler_12dec607e13.service($HttpServletRequestHandler_12dec607e13.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter.doFilter(AbstractPreAuthenticatedProcessingFilter.ja
va:89)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at
$HttpServletRequestFilter_12dec607e07.service($HttpServletRequestFilter_12dec607e07.java)
        at
$HttpServletRequestHandler_12dec607e13.service($HttpServletRequestHandler_12dec607e13.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at
$HttpServletRequestFilter_12dec607e08.service($HttpServletRequestFilter_12dec607e08.java)
        at
$HttpServletRequestHandler_12dec607e13.service($HttpServletRequestHandler_12dec607e13.java)
        at
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:928)
        at
$HttpServletRequestHandler_12dec607e13.service($HttpServletRequestHandler_12dec607e13.java)
        at
$HttpServletRequestHandler_12dec607e06.service($HttpServletRequestHandler_12dec607e06.java)
        at
org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:147)
        at sun.reflect.GeneratedMethodAccessor109.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
        at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
        at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:218)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:210)
        at
org.apache.catalina.core.ApplicationFilterChain.access$0(ApplicationFilterChain.java:192)
        at
org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:171)
        at java.security.AccessController.doPrivileged(Native Method)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
        at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
        at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
        at
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.util.ConcurrentModificationException
        at java.util.Hashtable$Enumerator.next(Hashtable.java:1031)
        at org.apache.catalina.util.Enumerator.<init>(Enumerator.java:101)
        at org.apache.catalina.util.Enumerator.<init>(Enumerator.java:67)
        at
org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1042)
        at
org.apache.catalina.session.StandardSessionFacade.getAttributeNames(StandardSessionFacade.java:120)
        at
org.apache.tapestry5.internal.services.SessionImpl.getAttributeNames(SessionImpl.java:77)
        at
org.apache.tapestry5.internal.services.AbstractSessionPersistentFieldStrategy.gatherFieldChanges(AbstractSessionPersistentFieldStrategy.java:55)
        at
org.apache.tapestry5.internal.services.PersistentFieldManagerImpl.gatherChanges(PersistentFieldManagerImpl.java:62)
        at
$PersistentFieldManager_12dec607e56.gatherChanges($PersistentFieldManager_12dec607e56.java)
        at
org.apache.tapestry5.internal.structure.PageImpl.getFieldChange(PageImpl.java:206)
        at
org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.getFieldChange(InternalComponentResourcesImpl.java:176)
        at
org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.hasFieldChange(InternalComponentResourcesImpl.java:186)
        at
org.apache.tapestry5.internal.transform.PersistWorker$PersistentFieldConduit.restoreStateAtPageAttach(PersistWorker.java:80)
        at
org.apache.tapestry5.internal.transform.PersistWorker$PersistentFieldConduit.access$000(PersistWorker.java:38)
        at
org.apache.tapestry5.internal.transform.PersistWorker$PersistentFieldConduit$1.restoreStateBeforePageAttach(PersistWorker.java:61)
        at
org.apache.tapestry5.internal.structure.PageImpl.attached(PageImpl.java:184)
        at
org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:78)
        ... 117 more


Eventually it looks like something in: 

org.apache.tapestry5.internal.services.SessionImpl.getAttributeNames(SessionImpl.java:77)

-- 
View this message in context: http://tapestry.1045711.n5.nabble.com/Rather-worrying-exception-with-5-2-4-java-util-ConcurrentModificationException-tp3370588p3370702.html
Sent from the Tapestry - Dev mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: Rather worrying exception with 5.2.4 (java.util.ConcurrentModificationException)

Posted by Josh Canfield <jo...@gmail.com>.
> I've been investigating a broader approach that identifies when
> multiple threads are operating on the same session and serializes
> those requests using a per-session lock (possibly, by synchronizing on
> the session relatively early in the pipeline)

There are times when you want your session to be accessed in parallel.
For instance, consider a private image gallery where image requests
are protected using information stored in the session.

This is the use-case that pointed out the problem with forcing cluster
updates by setting the session attributes to null briefly (causing a
new session attribute created). Forcing a multi-threaded app to run
serially seems a little drastic.

Josh


On Mon, May 16, 2011 at 5:41 PM, Howard Lewis Ship <hl...@gmail.com> wrote:
> That's a very good catch; it's difficult to do work that requires
> synchronizing the Session because locking it can also cause deadlocks.
> I've been investigating a broader approach that identifies when
> multiple threads are operating on the same session and serializes
> those requests using a per-session lock (possibly, by synchronizing on
> the session relatively early in the pipeline).
>
> On Mon, May 16, 2011 at 12:31 PM, David Rees <dr...@gmail.com> wrote:
>> On Mon, May 16, 2011 at 7:57 AM, antalk <an...@intercommit.nl> wrote:
>>> Thanks for your message, i hope it is now clear that it indeed is a issue
>>> somewhere within Tapestry. As a matter of fact i didn't saw this message for
>>> a long time on our test machines. But just today i encountered the same
>>> issue again.
>>
>> It looks like SessionImpl.getAttributeNames should be reworked to
>> synchronize on the session - or at least catch the
>> ConcurrentModificationException and try again (see patch below) which
>> is simpler.
>>
>> But I worry that the same error could be thrown in the
>> getAttributeNames function on line 61, too - similar technique should
>> probably be used there as well.
>>
>> --- SessionImpl.java~   2011-05-16 12:19:31.159348203 -0700
>> +++ SessionImpl.java    2011-05-16 12:28:35.073307235 -0700
>> @@ -72,8 +72,27 @@
>>
>>     public List<String> getAttributeNames(String prefix)
>>     {
>> -        List<String> result = CollectionFactory.newList();
>> +        List<String> result = null;
>>
>> +        do
>> +        {
>> +            try
>> +            {
>> +                result = getAttributeNamesFromSession(prefix);
>> +            }
>> +            catch (ConcurrentModificationException)
>> +            {
>> +                // Ignore - result will be null so we will try again
>> +            }
>> +        }
>> +        while (result == null);
>> +
>> +        return result;
>> +    }
>> +
>> +    private List<String> getAttributeNamesFromSession(String prefix)
>> throws ConcurrentModificationException
>> +    {
>> +        List<String> result = CollectionFactory.newList();
>>         Enumeration e = session.getAttributeNames();
>>         while (e.hasMoreElements())
>>         {
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: dev-help@tapestry.apache.org
>>
>>
>
>
>
> --
> Howard M. Lewis Ship
>
> Creator of Apache Tapestry
>
> The source for Tapestry training, mentoring and support. Contact me to
> learn how I can get you up and productive in Tapestry fast!
>
> (971) 678-5210
> http://howardlewisship.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: dev-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: Rather worrying exception with 5.2.4 (java.util.ConcurrentModificationException)

Posted by Howard Lewis Ship <hl...@gmail.com>.
That's a very good catch; it's difficult to do work that requires
synchronizing the Session because locking it can also cause deadlocks.
I've been investigating a broader approach that identifies when
multiple threads are operating on the same session and serializes
those requests using a per-session lock (possibly, by synchronizing on
the session relatively early in the pipeline).

On Mon, May 16, 2011 at 12:31 PM, David Rees <dr...@gmail.com> wrote:
> On Mon, May 16, 2011 at 7:57 AM, antalk <an...@intercommit.nl> wrote:
>> Thanks for your message, i hope it is now clear that it indeed is a issue
>> somewhere within Tapestry. As a matter of fact i didn't saw this message for
>> a long time on our test machines. But just today i encountered the same
>> issue again.
>
> It looks like SessionImpl.getAttributeNames should be reworked to
> synchronize on the session - or at least catch the
> ConcurrentModificationException and try again (see patch below) which
> is simpler.
>
> But I worry that the same error could be thrown in the
> getAttributeNames function on line 61, too - similar technique should
> probably be used there as well.
>
> --- SessionImpl.java~   2011-05-16 12:19:31.159348203 -0700
> +++ SessionImpl.java    2011-05-16 12:28:35.073307235 -0700
> @@ -72,8 +72,27 @@
>
>     public List<String> getAttributeNames(String prefix)
>     {
> -        List<String> result = CollectionFactory.newList();
> +        List<String> result = null;
>
> +        do
> +        {
> +            try
> +            {
> +                result = getAttributeNamesFromSession(prefix);
> +            }
> +            catch (ConcurrentModificationException)
> +            {
> +                // Ignore - result will be null so we will try again
> +            }
> +        }
> +        while (result == null);
> +
> +        return result;
> +    }
> +
> +    private List<String> getAttributeNamesFromSession(String prefix)
> throws ConcurrentModificationException
> +    {
> +        List<String> result = CollectionFactory.newList();
>         Enumeration e = session.getAttributeNames();
>         while (e.hasMoreElements())
>         {
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: dev-help@tapestry.apache.org
>
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: Rather worrying exception with 5.2.4 (java.util.ConcurrentModificationException)

Posted by David Rees <dr...@gmail.com>.
On Mon, May 16, 2011 at 7:57 AM, antalk <an...@intercommit.nl> wrote:
> Thanks for your message, i hope it is now clear that it indeed is a issue
> somewhere within Tapestry. As a matter of fact i didn't saw this message for
> a long time on our test machines. But just today i encountered the same
> issue again.

It looks like SessionImpl.getAttributeNames should be reworked to
synchronize on the session - or at least catch the
ConcurrentModificationException and try again (see patch below) which
is simpler.

But I worry that the same error could be thrown in the
getAttributeNames function on line 61, too - similar technique should
probably be used there as well.

--- SessionImpl.java~	2011-05-16 12:19:31.159348203 -0700
+++ SessionImpl.java	2011-05-16 12:28:35.073307235 -0700
@@ -72,8 +72,27 @@

     public List<String> getAttributeNames(String prefix)
     {
-        List<String> result = CollectionFactory.newList();
+        List<String> result = null;

+        do
+        {
+            try
+            {
+                result = getAttributeNamesFromSession(prefix);
+            }
+            catch (ConcurrentModificationException)
+            {
+                // Ignore - result will be null so we will try again
+            }
+        }
+        while (result == null);
+
+        return result;
+    }
+
+    private List<String> getAttributeNamesFromSession(String prefix)
throws ConcurrentModificationException
+    {
+        List<String> result = CollectionFactory.newList();
         Enumeration e = session.getAttributeNames();
         while (e.hasMoreElements())
         {

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: Rather worrying exception with 5.2.4 (java.util.ConcurrentModificationException)

Posted by antalk <an...@intercommit.nl>.
Hi Dave,

Thanks for your message, i hope it is now clear that it indeed is a issue
somewhere within Tapestry. As a matter of fact i didn't saw this message for
a long time on our test machines. But just today i encountered the same
issue again.

It popped-up during the display of a grid where the grid contains columns
who's information is retrieved using a progressive display component,
causing multiple threads to execute to retrieve and peform page (html)
creation.

Antal

--
View this message in context: http://tapestry.1045711.n5.nabble.com/Rather-worrying-exception-with-5-2-4-java-util-ConcurrentModificationException-tp3370588p4400666.html
Sent from the Tapestry - Dev mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: Rather worrying exception with 5.2.4 (java.util.ConcurrentModificationException)

Posted by David Rees <dr...@gmail.com>.
On Fri, Feb 4, 2011 at 7:17 AM, Ulrich Stärk <ul...@spielviel.de> wrote:
> Could you try again with tapestry-spring-security disabled?

I have seen the same stack trace in my application without
tapestry-spring-security using tapestry 5.2.5.  See below.

-Dave

ERROR: 13463: org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler:
Unexpected runtime exception: Unable to attach page Start (en):
java.util.ConcurrentModificationException
java.lang.RuntimeException: Unable to attach page Start (en):
java.util.ConcurrentModificationException
  at org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:82)
  at $RequestPageCache_12fe8a64398.get($RequestPageCache_12fe8a64398.java)
  at $RequestPageCache_12fe8a64392.get($RequestPageCache_12fe8a64392.java)
  at org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:70)
  at org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56)
  at $ComponentEventRequestHandler_12fe8a64747.handle($ComponentEventRequestHandler_12fe8a64747.java)
  at $ComponentEventRequestHandler_12fe8a644b8.handle($ComponentEventRequestHandler_12fe8a644b8.java)
  at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
  at $ComponentEventRequestHandler_12fe8a644ba.handle($ComponentEventRequestHandler_12fe8a644ba.java)
  at org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
  at $ComponentEventRequestHandler_12fe8a644ba.handle($ComponentEventRequestHandler_12fe8a644ba.java)
  at org.apache.tapestry5.services.TapestryModule$39.handle(TapestryModule.java:2583)
  at $ComponentEventRequestHandler_12fe8a644ba.handle($ComponentEventRequestHandler_12fe8a644ba.java)
  at $ComponentEventRequestHandler_12fe8a6438f.handle($ComponentEventRequestHandler_12fe8a6438f.java)
  at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
  at org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39)
  at $ComponentRequestHandler_12fe8a64391.handleComponentEvent($ComponentRequestHandler_12fe8a64391.java)
  at $ComponentRequestHandler_12fe8a64373.handleComponentEvent($ComponentRequestHandler_12fe8a64373.java)
  at org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)
  at $Dispatcher_12fe8a64377.dispatch($Dispatcher_12fe8a64377.java)
  at $Dispatcher_12fe8a6436f.dispatch($Dispatcher_12fe8a6436f.java)
  at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:321)
  at com.frontend.presentation.services.AppModule$1.service(AppModule.java:134)
  at $RequestFilter_12fe8a6436e.service($RequestFilter_12fe8a6436e.java)
  at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
  at $RequestHandler_12fe8a64370.service($RequestHandler_12fe8a64370.java)
  at $RequestHandler_12fe8a64370.service($RequestHandler_12fe8a64370.java)
  at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:984)
  at $RequestHandler_12fe8a64370.service($RequestHandler_12fe8a64370.java)
  at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:974)
  at $RequestHandler_12fe8a64370.service($RequestHandler_12fe8a64370.java)
  at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
  at $RequestHandler_12fe8a64370.service($RequestHandler_12fe8a64370.java)
  at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
  at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81)
  at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
  at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
  at $RequestHandler_12fe8a64370.service($RequestHandler_12fe8a64370.java)
  at $RequestHandler_12fe8a64367.service($RequestHandler_12fe8a64367.java)
  at org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:272)
  at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
  at $HttpServletRequestHandler_12fe8a64369.service($HttpServletRequestHandler_12fe8a64369.java)
  at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
  at $HttpServletRequestFilter_12fe8a64366.service($HttpServletRequestFilter_12fe8a64366.java)
  at $HttpServletRequestHandler_12fe8a64369.service($HttpServletRequestHandler_12fe8a64369.java)
  at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:928)
  at $HttpServletRequestHandler_12fe8a64369.service($HttpServletRequestHandler_12fe8a64369.java)
  at $HttpServletRequestHandler_12fe8a64363.service($HttpServletRequestHandler_12fe8a64363.java)
  at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:147)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
  at com.ndcfilter.filter.NDCFilter.doFilter(NDCFilter.java:42)
  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
  at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:500)
  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
  at org.apache.catalina.cluster.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:228)
  at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:347)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
  at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
  at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
  at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
  at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
  at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
  at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
  at java.lang.Thread.run(Thread.java:662)
Caused by: java.util.ConcurrentModificationException
  at java.util.Hashtable$Enumerator.next(Hashtable.java:1031)
  at org.apache.catalina.util.Enumerator.<init>(Enumerator.java:101)
  at org.apache.catalina.util.Enumerator.<init>(Enumerator.java:67)
  at org.apache.catalina.cluster.session.DeltaSession.getAttributeNames(DeltaSession.java:1046)
  at org.apache.catalina.cluster.session.DeltaSessionFacade.getAttributeNames(DeltaSessionFacade.java:121)
  at org.apache.tapestry5.internal.services.SessionImpl.getAttributeNames(SessionImpl.java:77)
  at org.apache.tapestry5.internal.services.AbstractSessionPersistentFieldStrategy.gatherFieldChanges(AbstractSessionPersistentFieldStrategy.java:55)
  at org.apache.tapestry5.internal.services.PersistentFieldManagerImpl.gatherChanges(PersistentFieldManagerImpl.java:62)
  at $PersistentFieldManager_12fe8a643a9.gatherChanges($PersistentFieldManager_12fe8a643a9.java)
  at org.apache.tapestry5.internal.structure.PageImpl.getFieldChange(PageImpl.java:206)
  at org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.getFieldChange(InternalComponentResourcesImpl.java:176)
  at org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.hasFieldChange(InternalComponentResourcesImpl.java:186)
  at org.apache.tapestry5.internal.transform.PersistWorker$PersistentFieldConduit.restoreStateAtPageAttach(PersistWorker.java:80)
  at org.apache.tapestry5.internal.transform.PersistWorker$PersistentFieldConduit.access$000(PersistWorker.java:38)
  at org.apache.tapestry5.internal.transform.PersistWorker$PersistentFieldConduit$1.restoreStateBeforePageAttach(PersistWorker.java:61)
  at org.apache.tapestry5.internal.structure.PageImpl.attached(PageImpl.java:184)
  at org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:78)
  ... 69 more

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: Rather worrying exception with 5.2.4 (java.util.ConcurrentModificationException)

Posted by Ulrich Stärk <ul...@spielviel.de>.
Could you try again with tapestry-spring-security disabled?

Uli

On 04.02.2011 15:36, antalk wrote:
>
> Ok ..
>
> We somehow reproduced the same error. We were testing with 3 users, i was
> using 3 browser (3 times logged with the SAME user account but different
> sessions) , and the other 2 people using one browser using a different
> account.
>
> It happend during an AJAX request, i saw a small red bar in the upper left
> corner with the message.
>
> This was at a time when the 3 of us did some serious testing and clicking
> through the application (like 20 requests per second or more)
>
> For completeness again the stacktrace:
>
> ERROR 2011-02-04 15:31:03,938 [TP-Processor5][]
> org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler -
> Processing of request failed with uncaugh
> t exception: Unable to attach page documents/Sent (nl):
> java.util.ConcurrentModificationException
> java.lang.RuntimeException: Unable to attach page documents/Sent (nl):
> java.util.ConcurrentModificationException
>          at
> org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:82)
>          at
> $RequestPageCache_12df10ff87a.get($RequestPageCache_12df10ff87a.java)
>          at
> $RequestPageCache_12df10ff874.get($RequestPageCache_12df10ff874.java)
>          at
> org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:70)
>          at
> org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56)
>          at
> $ComponentEventRequestHandler_12df10ff886.handle($ComponentEventRequestHandler_12df10ff886.java)
>          at
> $ComponentEventRequestHandler_12df10ff871.handle($ComponentEventRequestHandler_12df10ff871.java)
>          at
> org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
>          at
> $ComponentEventRequestHandler_12df10ff878.handle($ComponentEventRequestHandler_12df10ff878.java)
>          at
> org.apache.tapestry5.services.TapestryModule$39.handle(TapestryModule.java:2583)
>          at
> $ComponentEventRequestHandler_12df10ff878.handle($ComponentEventRequestHandler_12df10ff878.java)
>          at
> $ComponentEventRequestHandler_12df10ff86e.handle($ComponentEventRequestHandler_12df10ff86e.java)
>          at
> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
>          at
> org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39)
>          at
> $ComponentRequestHandler_12df10ff870.handleComponentEvent($ComponentRequestHandler_12df10ff870.java)
>          at
> $ComponentRequestHandler_12df10ff855.handleComponentEvent($ComponentRequestHandler_12df10ff855.java)
>          at
> org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)
>          at $Dispatcher_12df10ff859.dispatch($Dispatcher_12df10ff859.java)
>          at $Dispatcher_12df10ff852.dispatch($Dispatcher_12df10ff852.java)
>          at
> org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:321)
>          at
> us.antera.t5restfulws.services.impl.RestfulWSDispatcher.service(RestfulWSDispatcher.java:79)
>          at
> $RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.RequestFilterWrapper$1.doFilter(RequestFilterWrapper.java:60)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.SpringSecurityExceptionTranslationFilter.doFilter(SpringSecurityExceptionTranslationFilter.java:90)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.RequestFilterWrapper.service(RequestFilterWrapper.java:55)
>          at
> $RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
>          at
> org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
>          at
> $RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
>          at
> org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:984)
>          at
> $RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
>          at
> org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:974)
>          at
> $RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
>          at
> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
>          at
> $RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
>          at
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
>          at
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:80)
>          at
> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
>          at
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
>          at
> $RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
>          at
> $RequestHandler_12df10ff844.service($RequestHandler_12df10ff844.java)
>          at
> org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:272)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
>          at
> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
>          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_12df10ff842.service($HttpServletRequestFilter_12df10ff842.java)
>          at
> $HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.SpringSecurityExceptionTranslationFilter.doFilter(SpringSecurityExceptionTranslationFilter.java:90)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
>          at
> $HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
>          at
> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
>          at
> $HttpServletRequestFilter_12df10ff841.service($HttpServletRequestFilter_12df10ff841.java)
>          at
> $HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
>          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_12df10ff840.service($HttpServletRequestFilter_12df10ff840.java)
>          at
> $HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
>          at
> org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
>          at
> $HttpServletRequestFilter_12df10ff83f.service($HttpServletRequestFilter_12df10ff83f.java)
>          at
> $HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
>          at
> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
>          at
> $HttpServletRequestFilter_12df10ff83e.service($HttpServletRequestFilter_12df10ff83e.java)
>          at
> $HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
>          at
> org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
>          at
> $HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
>          at
> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
>          at
> $HttpServletRequestFilter_12df10ff83c.service($HttpServletRequestFilter_12df10ff83c.java)
>          at
> $HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
>          at
> nl.intercommit.godocument.services.AppModule$1.service(AppModule.java:414)
>          at
> $HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
>          at
> org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter.doFilter(AbstractPreAuthenticatedProcessingFilter.java:89)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
>          at
> $HttpServletRequestFilter_12df10ff83a.service($HttpServletRequestFilter_12df10ff83a.java)
>          at
> $HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
>          at
> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
>          at
> nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
>          at
> $HttpServletRequestFilter_12df10ff83d.service($HttpServletRequestFilter_12df10ff83d.java)
>          at
> $HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
>          at
> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:928)
>          at
> $HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
>          at
> $HttpServletRequestHandler_12df10ff839.service($HttpServletRequestHandler_12df10ff839.java)
>          at
> org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:147)
>          at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
>          at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>          at java.lang.reflect.Method.invoke(Method.java:597)
>          at
> org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
>          at java.security.AccessController.doPrivileged(Native Method)
>          at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
>          at
> org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
>          at
> org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:218)
>          at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:210)
>          at
> org.apache.catalina.core.ApplicationFilterChain.access$0(ApplicationFilterChain.java:192)
>          at
> org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:171)
>          at java.security.AccessController.doPrivileged(Native Method)
>          at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167)
>          at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>          at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
>          at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>          at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>          at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>          at
> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
>          at
> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
>          at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
>          at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
>          at
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
>          at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>          at java.lang.Thread.run(Thread.java:662)
> Caused by: java.util.ConcurrentModificationException
>          at java.util.Hashtable$Enumerator.next(Hashtable.java:1031)
>          at org.apache.catalina.util.Enumerator.<init>(Enumerator.java:101)
>          at org.apache.catalina.util.Enumerator.<init>(Enumerator.java:67)
>          at
> org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1042)
>          at
> org.apache.catalina.session.StandardSessionFacade.getAttributeNames(StandardSessionFacade.java:120)
>          at
> org.apache.tapestry5.internal.services.SessionImpl.getAttributeNames(SessionImpl.java:77)
>          at
> org.apache.tapestry5.internal.services.AbstractSessionPersistentFieldStrategy.gatherFieldChanges(AbstractSessionPersistentFieldStrategy.java:55)
>          at
> org.apache.tapestry5.internal.services.PersistentFieldManagerImpl.gatherChanges(PersistentFieldManagerImpl.java:62)
>          at
> $PersistentFieldManager_12df10ff892.gatherChanges($PersistentFieldManager_12df10ff892.java)
>          at
> org.apache.tapestry5.internal.structure.PageImpl.getFieldChange(PageImpl.java:206)
>          at
> org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.getFieldChange(InternalComponentResourcesImpl.java:176)
>          at
> org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.hasFieldChange(InternalComponentResourcesImpl.java:186)
>          at
> org.apache.tapestry5.internal.transform.PersistWorker$PersistentFieldConduit.restoreStateAtPageAttach(PersistWorker.java:80)
>          at
> org.apache.tapestry5.internal.transform.PersistWorker$PersistentFieldConduit.access$000(PersistWorker.java:38)
>          at
> org.apache.tapestry5.internal.transform.PersistWorker$PersistentFieldConduit$1.restoreStateBeforePageAttach(PersistWorker.java:61)
>          at
> org.apache.tapestry5.internal.structure.PageImpl.attached(PageImpl.java:184)
>          at
> org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:78)
>
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: Rather worrying exception with 5.2.4 (java.util.ConcurrentModificationException)

Posted by antalk <an...@intercommit.nl>.
Ok ..

We somehow reproduced the same error. We were testing with 3 users, i was
using 3 browser (3 times logged with the SAME user account but different
sessions) , and the other 2 people using one browser using a different
account.

It happend during an AJAX request, i saw a small red bar in the upper left
corner with the message. 

This was at a time when the 3 of us did some serious testing and clicking
through the application (like 20 requests per second or more)

For completeness again the stacktrace:

ERROR 2011-02-04 15:31:03,938 [TP-Processor5][]
org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler -
Processing of request failed with uncaugh
t exception: Unable to attach page documents/Sent (nl):
java.util.ConcurrentModificationException
java.lang.RuntimeException: Unable to attach page documents/Sent (nl):
java.util.ConcurrentModificationException
        at
org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:82)
        at
$RequestPageCache_12df10ff87a.get($RequestPageCache_12df10ff87a.java)
        at
$RequestPageCache_12df10ff874.get($RequestPageCache_12df10ff874.java)
        at
org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:70)
        at
org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56)
        at
$ComponentEventRequestHandler_12df10ff886.handle($ComponentEventRequestHandler_12df10ff886.java)
        at
$ComponentEventRequestHandler_12df10ff871.handle($ComponentEventRequestHandler_12df10ff871.java)
        at
org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
        at
$ComponentEventRequestHandler_12df10ff878.handle($ComponentEventRequestHandler_12df10ff878.java)
        at
org.apache.tapestry5.services.TapestryModule$39.handle(TapestryModule.java:2583)
        at
$ComponentEventRequestHandler_12df10ff878.handle($ComponentEventRequestHandler_12df10ff878.java)
        at
$ComponentEventRequestHandler_12df10ff86e.handle($ComponentEventRequestHandler_12df10ff86e.java)
        at
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
        at
org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39)
        at
$ComponentRequestHandler_12df10ff870.handleComponentEvent($ComponentRequestHandler_12df10ff870.java)
        at
$ComponentRequestHandler_12df10ff855.handleComponentEvent($ComponentRequestHandler_12df10ff855.java)
        at
org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)
        at $Dispatcher_12df10ff859.dispatch($Dispatcher_12df10ff859.java)
        at $Dispatcher_12df10ff852.dispatch($Dispatcher_12df10ff852.java)
        at
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:321)
        at
us.antera.t5restfulws.services.impl.RestfulWSDispatcher.service(RestfulWSDispatcher.java:79)
        at
$RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.RequestFilterWrapper$1.doFilter(RequestFilterWrapper.java:60)
        at
nu.localhost.tapestry5.springsecurity.services.internal.SpringSecurityExceptionTranslationFilter.doFilter(SpringSecurityExceptionTranslationFilter.java:90)
        at
nu.localhost.tapestry5.springsecurity.services.internal.RequestFilterWrapper.service(RequestFilterWrapper.java:55)
        at
$RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
        at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
        at
$RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
        at
org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:984)
        at
$RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
        at
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:974)
        at
$RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
        at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
        at
$RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
        at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
        at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:80)
        at
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
        at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
        at
$RequestHandler_12df10ff853.service($RequestHandler_12df10ff853.java)
        at
$RequestHandler_12df10ff844.service($RequestHandler_12df10ff844.java)
        at
org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:272)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
        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_12df10ff842.service($HttpServletRequestFilter_12df10ff842.java)
        at
$HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
nu.localhost.tapestry5.springsecurity.services.internal.SpringSecurityExceptionTranslationFilter.doFilter(SpringSecurityExceptionTranslationFilter.java:90)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at
$HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at
$HttpServletRequestFilter_12df10ff841.service($HttpServletRequestFilter_12df10ff841.java)
        at
$HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        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_12df10ff840.service($HttpServletRequestFilter_12df10ff840.java)
        at
$HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at
$HttpServletRequestFilter_12df10ff83f.service($HttpServletRequestFilter_12df10ff83f.java)
        at
$HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at
$HttpServletRequestFilter_12df10ff83e.service($HttpServletRequestFilter_12df10ff83e.java)
        at
$HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
        at
org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
        at
$HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
        at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
        at
$HttpServletRequestFilter_12df10ff83c.service($HttpServletRequestFilter_12df10ff83c.java)
        at
$HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
        at
nl.intercommit.godocument.services.AppModule$1.service(AppModule.java:414)
        at
$HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter.doFilter(AbstractPreAuthenticatedProcessingFilter.java:89)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at
$HttpServletRequestFilter_12df10ff83a.service($HttpServletRequestFilter_12df10ff83a.java)
        at
$HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper$1.doFilter(HttpServletRequestFilterWrapper.java:57)
        at
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
        at
nu.localhost.tapestry5.springsecurity.services.internal.HttpServletRequestFilterWrapper.service(HttpServletRequestFilterWrapper.java:52)
        at
$HttpServletRequestFilter_12df10ff83d.service($HttpServletRequestFilter_12df10ff83d.java)
        at
$HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
        at
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:928)
        at
$HttpServletRequestHandler_12df10ff846.service($HttpServletRequestHandler_12df10ff846.java)
        at
$HttpServletRequestHandler_12df10ff839.service($HttpServletRequestHandler_12df10ff839.java)
        at
org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:147)
        at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
        at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
        at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:218)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:210)
        at
org.apache.catalina.core.ApplicationFilterChain.access$0(ApplicationFilterChain.java:192)
        at
org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:171)
        at java.security.AccessController.doPrivileged(Native Method)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
       at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
        at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
        at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
        at
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.util.ConcurrentModificationException
        at java.util.Hashtable$Enumerator.next(Hashtable.java:1031)
        at org.apache.catalina.util.Enumerator.<init>(Enumerator.java:101)
        at org.apache.catalina.util.Enumerator.<init>(Enumerator.java:67)
        at
org.apache.catalina.session.StandardSession.getAttributeNames(StandardSession.java:1042)
        at
org.apache.catalina.session.StandardSessionFacade.getAttributeNames(StandardSessionFacade.java:120)
        at
org.apache.tapestry5.internal.services.SessionImpl.getAttributeNames(SessionImpl.java:77)
        at
org.apache.tapestry5.internal.services.AbstractSessionPersistentFieldStrategy.gatherFieldChanges(AbstractSessionPersistentFieldStrategy.java:55)
        at
org.apache.tapestry5.internal.services.PersistentFieldManagerImpl.gatherChanges(PersistentFieldManagerImpl.java:62)
        at
$PersistentFieldManager_12df10ff892.gatherChanges($PersistentFieldManager_12df10ff892.java)
        at
org.apache.tapestry5.internal.structure.PageImpl.getFieldChange(PageImpl.java:206)
        at
org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.getFieldChange(InternalComponentResourcesImpl.java:176)
        at
org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.hasFieldChange(InternalComponentResourcesImpl.java:186)
        at
org.apache.tapestry5.internal.transform.PersistWorker$PersistentFieldConduit.restoreStateAtPageAttach(PersistWorker.java:80)
        at
org.apache.tapestry5.internal.transform.PersistWorker$PersistentFieldConduit.access$000(PersistWorker.java:38)
        at
org.apache.tapestry5.internal.transform.PersistWorker$PersistentFieldConduit$1.restoreStateBeforePageAttach(PersistWorker.java:61)
        at
org.apache.tapestry5.internal.structure.PageImpl.attached(PageImpl.java:184)
        at
org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:78)




-- 
View this message in context: http://tapestry.1045711.n5.nabble.com/Rather-worrying-exception-with-5-2-4-java-util-ConcurrentModificationException-tp3370588p3371058.html
Sent from the Tapestry - Dev mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: Rather worrying exception with 5.2.4 (java.util.ConcurrentModificationException)

Posted by antalk <an...@intercommit.nl>.
About the Security Integration:

I took the current trunk:
http://www.localhost.nu/svn/public/tapestry-spring-security/trunk/

And build this locally against Tapestry 5.2.4, then uploaded the resulting
jar in our local repo and used that for integration.


-- 
View this message in context: http://tapestry.1045711.n5.nabble.com/Rather-worrying-exception-with-5-2-4-java-util-ConcurrentModificationException-tp3370588p3370905.html
Sent from the Tapestry - Dev mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org


Re: Rather worrying exception with 5.2.4 (java.util.ConcurrentModificationException)

Posted by "Thiago H. de Paula Figueiredo" <th...@gmail.com>.
On Fri, 04 Feb 2011 06:10:12 -0200, antalk <an...@intercommit.nl> wrote:

> Hi,

Hi!

> Last month i've upgraded our internally used website from Tap 5.1 to  
> 5.2.4, all went well until i found this disturbing exception in the  
> error log:

Wasn't a very similar bug fixed in the trunk some days ago?

In addition, are you sure the Tapestry Security integration you're using  
is compatible with 5.2.4?

-- 
Thiago H. de Paula Figueiredo
Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,  
and instructor
Owner, Ars Machina Tecnologia da Informação Ltda.
http://www.arsmachina.com.br

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org