I believe there are numerous such Maps, but what can be the cause of concurrent modification? Wicket should be allowing only single thread operating on the object?
** Martin 2011/8/19 Dan Retzlaff <dretzl...@gmail.com>: > I tend to agree that odds of a Wicket bug in this area are small. Can you > think of a case in your application where a component has a HashMap of > objects which have a TreeMap of objects? Maybe the source of this collection > within your application is the problem. > > On Fri, Aug 19, 2011 at 8:50 AM, Martin Makundi < > martin.maku...@koodaripalvelut.com> wrote: > >> Hi! >> >> I don't know how to reproduce it... and I wonder, because there is >> pagemap lock, what else can be modifying stuff during page >> serialization? >> >> ** >> Martin >> >> 2011/8/19 Dan Retzlaff <dretzl...@gmail.com>: >> > How reproducible is this? I don't know how the serialization process >> itself >> > would cause this, but if it's intermittent then maybe there's a threading >> / >> > synchronization bug somewhere. >> > >> > On Fri, Aug 19, 2011 at 1:59 AM, Martin Makundi < >> > martin.maku...@koodaripalvelut.com> wrote: >> > >> >> Hi! >> >> >> >> What can be the cause of this error, how can there be concurrent >> >> modification to a item on a page being serialized? >> >> >> >> ** >> >> Martin >> >> >> >> >> >> java.util.ConcurrentModificationException >> >> at >> >> java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1100) >> >> at java.util.TreeMap$EntryIterator.next(TreeMap.java:1136) >> >> at java.util.TreeMap$EntryIterator.next(TreeMap.java:1131) >> >> at java.util.TreeMap.writeObject(TreeMap.java:2250) >> >> at sun.reflect.GeneratedMethodAccessor63.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.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330) >> >> at java.util.HashMap.writeObject(HashMap.java:1001) >> >> at sun.reflect.GeneratedMethodAccessor20.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.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:422) >> >> at org.apache.wicket.Component.writeObject(Component.java:4702) >> >> at sun.reflect.GeneratedMethodAccessor12.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.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330) >> >> at java.util.LinkedList.writeObject(LinkedList.java:943) >> >> at sun.reflect.GeneratedMethodAccessor17.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.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330) >> >> at java.util.LinkedList.writeObject(LinkedList.java:943) >> >> at sun.reflect.GeneratedMethodAccessor17.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.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330) >> >> at java.util.LinkedList.writeObject(LinkedList.java:943) >> >> at sun.reflect.GeneratedMethodAccessor17.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.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330) >> >> at java.util.ArrayList.writeObject(ArrayList.java:570) >> >> at sun.reflect.GeneratedMethodAccessor27.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.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:422) >> >> at org.apache.wicket.Component.writeObject(Component.java:4702) >> >> at sun.reflect.GeneratedMethodAccessor12.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.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154) >> >> at >> >> >> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518) >> >> at >> >> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483) >> >> at >> >> >> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400) >> >> at >> >> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158) >> >> at >> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330) >> >> at >> >> >> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121) >> >> at >> >> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) >> >> at >> >> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1124) >> >> at >> >> >> org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:203) >> >> at >> >> >> org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:840) >> >> at >> >> >> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSessionStore.java:332) >> >> at org.apache.wicket.Session.requestDetached(Session.java:1435) >> >> at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1176) >> >> at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1462) >> >> at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) >> >> at >> >> >> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486) >> >> at >> >> >> org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138) >> >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) >> >> at wicket.quickstart.TakpServlet.service(TakpServlet.java:74) >> >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >> >> at >> >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) >> >> at >> >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389) >> >> at >> >> >> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) >> >> at >> >> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) >> >> at >> >> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) >> >> at >> >> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) >> >> at >> >> >> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) >> >> at >> >> >> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) >> >> at >> >> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) >> >> at org.mortbay.jetty.Server.handle(Server.java:326) >> >> at >> >> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) >> >> at >> >> >> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864) >> >> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) >> >> at >> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) >> >> at >> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) >> >> at >> >> >> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) >> >> at >> >> >> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> >> For additional commands, e-mail: users-h...@wicket.apache.org >> >> >> >> >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org