Hello,
I'm trying to crack a strange, intermittent bug that's cropped up on our
production site. We're using Wicket 1.5.4, and receive the following stack
trace a couple times a day under nominal load:
2012-02-23 14:24:57,051 ERROR [ajp-0.0.0.0-8009-2]
[org.apache.wicket.serialize.java.JavaSerializer] error writing object
[Page class = com.company.web.pages.account.MyAccount, id = 8, render count
= 2]: null
java.util.ConcurrentModificationException
at java.util.ArrayList.writeObject(ArrayList.java:573)
at sun.reflect.GeneratedMethodAccessor252.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
...
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at
org.apache.wicket.serialize.java.JavaSerializer$CheckerObjectOutputStream.writeObjectOverride(JavaSerializer.java:250)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at
org.apache.wicket.serialize.java.JavaSerializer.serialize(JavaSerializer.java:77)
at
org.apache.wicket.pageStore.DefaultPageStore.serializePage(DefaultPageStore.java:368)
at
org.apache.wicket.pageStore.DefaultPageStore.storePage(DefaultPageStore.java:146)
at
org.apache.wicket.page.PageStoreManager$PersistentRequestAdapter.storeTouchedPages(PageStoreManager.java:383)
at
org.apache.wicket.page.RequestAdapter.commitRequest(RequestAdapter.java:171)
at
org.apache.wicket.page.AbstractPageManager.commitRequest(AbstractPageManager.java:94)
at
org.apache.wicket.page.PageManagerDecorator.commitRequest(PageManagerDecorator.java:68)
at
org.apache.wicket.page.PageAccessSynchronizer$2.commitRequest(PageAccessSynchronizer.java:281)
at org.apache.wicket.Application$2.onDetach(Application.java:1598)
at
org.apache.wicket.request.cycle.RequestCycleListenerCollection$3.notify(RequestCycleListenerCollection.java:99)
at
org.apache.wicket.request.cycle.RequestCycleListenerCollection$3.notify(RequestCycleListenerCollection.java:97)
at
org.apache.wicket.util.listener.ListenerCollection$1.notify(ListenerCollection.java:119)
at
org.apache.wicket.util.listener.ListenerCollection.reversedNotify(ListenerCollection.java:143)
at
org.apache.wicket.util.listener.ListenerCollection.reversedNotifyIgnoringExceptions(ListenerCollection.java:113)
at
org.apache.wicket.request.cycle.RequestCycleListenerCollection.onDetach(RequestCycleListenerCollection.java:95)
at
org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:600)
at
org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:539)
at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:287)
at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:162)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:218)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
...
Looking at our logs, there doesn't seem to be anything interesting going on
around the time of these exceptions. We're not spawning any threads on our
own, and we haven't overridden any serialization-related mechanisms (or
defined custom writeObject methods), so I'm at a loss as to where I should
look for the cause of this error. Any ideas?
Thanks!
-Allen