There isn't much information in that stack. Why don't you subclass LRUMap with a custom writeObject() implementation? Then you can breakpoint it, log from it, and maybe throw NotSerializableException to trigger Wicket SerializableChecker which gives nicer output. That way it triggers every time the map is serialized, not just when a concurrent modification happens.
On Tue, Aug 6, 2013 at 10:52 AM, saty <[email protected]> wrote: > Thanks Mike, > > This is the complete exception trace, thanks for your help. It does appear > that this is thrown when wicket trying to serialize page. > > > 06 Aug 2013 13:30:20.917 [http-apr-9999-exec-3] ERROR > o.a.w.serialize.java.JavaSerializer - Error serializing object class > com.a.b.web.HomePage [object=[Page class = com.a.b.web.HomePage, id = 0, > render count = 1]] > org.apache.wicket.WicketRuntimeException: > java.util.ConcurrentModificationException > at > > org.apache.wicket.serialize.java.JavaSerializer$SerializationCheckerObjectOutputStream.writeObjectOverride(JavaSerializer.java:278) > ~[wicket-core-6.6.0.jar:6.6.0] > at > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342) > ~[na:1.7.0_21] > at > > org.apache.wicket.serialize.java.JavaSerializer.serialize(JavaSerializer.java:78) > ~[wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.pageStore.DefaultPageStore.serializePage(DefaultPageStore.java:376) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.pageStore.DefaultPageStore.storePage(DefaultPageStore.java:150) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.page.PageStoreManager$PersistentRequestAdapter.storeTouchedPages(PageStoreManager.java:383) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.page.RequestAdapter.commitRequest(RequestAdapter.java:171) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.page.AbstractPageManager.commitRequest(AbstractPageManager.java:98) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.page.PageManagerDecorator.commitRequest(PageManagerDecorator.java:73) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.page.PageAccessSynchronizer$2.commitRequest(PageAccessSynchronizer.java:281) > [wicket-core-6.6.0.jar:6.6.0] > at org.apache.wicket.Application$2.onDetach(Application.java:1628) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.request.cycle.RequestCycleListenerCollection$3.notify(RequestCycleListenerCollection.java:105) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.request.cycle.RequestCycleListenerCollection$3.notify(RequestCycleListenerCollection.java:101) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.util.listener.ListenerCollection$1.notify(ListenerCollection.java:120) > [wicket-util-6.6.0.jar:6.6.0] > at > > org.apache.wicket.util.listener.ListenerCollection.reversedNotify(ListenerCollection.java:144) > [wicket-util-6.6.0.jar:6.6.0] > at > > org.apache.wicket.util.listener.ListenerCollection.reversedNotifyIgnoringExceptions(ListenerCollection.java:113) > [wicket-util-6.6.0.jar:6.6.0] > at > > org.apache.wicket.request.cycle.RequestCycleListenerCollection.onDetach(RequestCycleListenerCollection.java:100) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:619) > [wicket-core-6.6.0.jar:6.6.0] > at > org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:568) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:286) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:244) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:267) > [wicket-core-6.6.0.jar:6.6.0] > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) > [catalina.jar:7.0.39] > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > [catalina.jar:7.0.39] > at > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:344) > [spring-security-web-3.0.0.M2.jar:na] > at > > org.springframework.security.ui.ntlm.NtlmProcessingFilter.doFilter(NtlmProcessingFilter.java:355) > [spring-security-ntlm-3.0.0.M2.jar:na] > at > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) > [spring-security-web-3.0.0.M2.jar:na] > at > > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:98) > [spring-security-web-3.0.0.M2.jar:na] > at > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) > [spring-security-web-3.0.0.M2.jar:na] > at > > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) > [spring-security-web-3.0.0.M2.jar:na] > at > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:356) > [spring-security-web-3.0.0.M2.jar:na] > at > > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:150) > [spring-security-web-3.0.0.M2.jar:na] > at > > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) > [spring-web-3.0.2.RELEASE.jar:3.0.2.RELEASE] > at > > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) > [spring-web-3.0.2.RELEASE.jar:3.0.2.RELEASE] > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) > [catalina.jar:7.0.39] > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > [catalina.jar:7.0.39] > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) > [catalina.jar:7.0.39] > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) > [catalina.jar:7.0.39] > at > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) > [catalina.jar:7.0.39] > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) > [catalina.jar:7.0.39] > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) > [catalina.jar:7.0.39] > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947) > [catalina.jar:7.0.39] > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > [catalina.jar:7.0.39] > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) > [catalina.jar:7.0.39] > at > > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009) > [tomcat-coyote.jar:7.0.39] > at > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) > [tomcat-coyote.jar:7.0.39] > at > > org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852) > [tomcat-coyote.jar:7.0.39] > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > [na:1.7.0_21] > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > [na:1.7.0_21] > at java.lang.Thread.run(Thread.java:722) [na:1.7.0_21] Caused by: > java.util.ConcurrentModificationException: null > at > > org.apache.commons.collections.map.AbstractLinkedMap$LinkIterator.nextEntry(AbstractLinkedMap.java:560) > ~[commons-collections-3.2.1.jar:3.2.1] > at > > org.apache.commons.collections.map.AbstractLinkedMap$LinkMapIterator.next(AbstractLinkedMap.java:372) > ~[commons-collections-3.2.1.jar:3.2.1] > at > > org.apache.commons.collections.map.AbstractHashedMap.doWriteObject(AbstractHashedMap.java:1181) > ~[commons-collections-3.2.1.jar:3.2.1] > at > org.apache.commons.collections.map.LRUMap.doWriteObject(LRUMap.java:420) > ~[commons-collections-3.2.1.jar:3.2.1] > at > org.apache.commons.collections.map.LRUMap.writeObject(LRUMap.java:404) > ~[commons-collections-3.2.1.jar:3.2.1] > at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source) > ~[na:na] > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[na:1.7.0_21] > at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_21] > at > java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:975) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480) > ~[na:1.7.0_21] > at > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > ~[na:1.7.0_21] > at > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > ~[na:1.7.0_21] > at > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > ~[na:1.7.0_21] > at > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1362) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1170) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > ~[na:1.7.0_21] > at > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > ~[na:1.7.0_21] > at > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1362) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1170) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > ~[na:1.7.0_21] > at > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1362) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1170) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > ~[na:1.7.0_21] > at > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > ~[na:1.7.0_21] > at > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1362) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1170) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > ~[na:1.7.0_21] > at > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1362) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1170) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493) > ~[na:1.7.0_21] > at > > java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174) > ~[na:1.7.0_21] > at > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346) > ~[na:1.7.0_21] > at > > org.apache.wicket.serialize.java.JavaSerializer$SerializationCheckerObjectOutputStream.writeObjectOverride(JavaSerializer.java:260) > ~[wicket-core-6.6.0.jar:6.6.0] > ... 50 common frames omitted > > > > > -- > View this message in context: > http://apache-wicket.1842946.n4.nabble.com/How-to-resolve-this-java-util-ConcurrentModificationException-tp4660273p4660729.html > Sent from the Users forum mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
