[
https://issues.apache.org/jira/browse/WICKET-6702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17075776#comment-17075776
]
Thorben Schmidt commented on WICKET-6702:
-----------------------------------------
I can confirm the statement of [~tobiashaupt]. I get the same exception, but
from the class org.apache.commons.collections4.map.LinkedMap, because of the
constant MAPIFY_THRESHOLD from the MarkupContainer.
I think because a web application is always multithreaded and this is
especially true for ajax requests, the list or map should be threadsafe
(concurrent / synchronized).
{noformat}
2020-04-05 09:44:02,442 - INFO [main] org.eclipse.jetty.server.Server []:
Started @25664ms
2020-04-05 11:33:01,939 - ERROR [Wicket-AsyncPageStore-PageSavingThread]
org.apache.wicket.serialize.java.JavaSerializer []: error writing object [Page
class = some.package.application.pages.SomePage, id = 21, render count = 1]:
null
java.util.ConcurrentModificationException: null
at
org.apache.commons.collections4.map.AbstractLinkedMap$LinkIterator.nextEntry(AbstractLinkedMap.java:574)
~[commons-collections4-4.4.jar:4.4]
at
org.apache.commons.collections4.map.AbstractLinkedMap$LinkMapIterator.next(AbstractLinkedMap.java:369)
~[commons-collections4-4.4.jar:4.4]
at
org.apache.commons.collections4.map.AbstractHashedMap.doWriteObject(AbstractHashedMap.java:1245)
~[commons-collections4-4.4.jar:4.4]
at
org.apache.commons.collections4.map.LinkedMap.writeObject(LinkedMap.java:134)
~[commons-collections4-4.4.jar:4.4]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[?:1.8.0_242]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:1.8.0_242]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
~[?:1.8.0_242]
at java.util.ArrayList.writeObject(ArrayList.java:766) ~[?:1.8.0_242]
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
~[?:1.8.0_242]
at java.util.ArrayList.writeObject(ArrayList.java:766) ~[?:1.8.0_242]
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1378)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
~[?:1.8.0_242]
at java.util.ArrayList.writeObject(ArrayList.java:766) ~[?:1.8.0_242]
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
~[?:1.8.0_242]
at java.util.ArrayList.writeObject(ArrayList.java:766) ~[?:1.8.0_242]
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
~[?:1.8.0_242]
at java.util.ArrayList.writeObject(ArrayList.java:766) ~[?:1.8.0_242]
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
~[?:1.8.0_242]
at
org.apache.wicket.serialize.java.JavaSerializer$SerializationCheckerObjectOutputStream.writeObjectOverride(JavaSerializer.java:368)
~[wicket-core-8.7.0.jar:8.7.0]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
~[?:1.8.0_242]
at
org.apache.wicket.serialize.java.JavaSerializer.serialize(JavaSerializer.java:82)
~[wicket-core-8.7.0.jar:8.7.0]
at
org.apache.wicket.pageStore.AbstractPageStore.serializePage(AbstractPageStore.java:133)
~[wicket-core-8.7.0.jar:8.7.0]
at
org.apache.wicket.pageStore.DefaultPageStore.createSerializedPage(DefaultPageStore.java:281)
~[wicket-core-8.7.0.jar:8.7.0]
at
org.apache.wicket.pageStore.DefaultPageStore.storePage(DefaultPageStore.java:61)
~[wicket-core-8.7.0.jar:8.7.0]
at
org.apache.wicket.pageStore.AsynchronousPageStore$PageSavingRunnable.run(AsynchronousPageStore.java:208)
~[wicket-core-8.7.0.jar:8.7.0]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
2020-04-05 11:33:01,939 - ERROR [Wicket-AsyncPageStore-PageSavingThread]
org.apache.wicket.serialize.java.JavaSerializer []: Error serializing object
class some.package.application.pages.SomePage [object=[Page class =
some.package.application.pages.SomePage, id = 21, render count = 1]]
org.apache.wicket.WicketRuntimeException:
java.util.ConcurrentModificationException
at
org.apache.wicket.serialize.java.JavaSerializer$SerializationCheckerObjectOutputStream.writeObjectOverride(JavaSerializer.java:402)
~[wicket-core-8.7.0.jar:8.7.0]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
~[?:1.8.0_242]
at
org.apache.wicket.serialize.java.JavaSerializer.serialize(JavaSerializer.java:82)
~[wicket-core-8.7.0.jar:8.7.0]
at
org.apache.wicket.pageStore.AbstractPageStore.serializePage(AbstractPageStore.java:133)
~[wicket-core-8.7.0.jar:8.7.0]
at
org.apache.wicket.pageStore.DefaultPageStore.createSerializedPage(DefaultPageStore.java:281)
~[wicket-core-8.7.0.jar:8.7.0]
at
org.apache.wicket.pageStore.DefaultPageStore.storePage(DefaultPageStore.java:61)
~[wicket-core-8.7.0.jar:8.7.0]
at
org.apache.wicket.pageStore.AsynchronousPageStore$PageSavingRunnable.run(AsynchronousPageStore.java:208)
~[wicket-core-8.7.0.jar:8.7.0]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
Caused by: java.util.ConcurrentModificationException
at
org.apache.commons.collections4.map.AbstractLinkedMap$LinkIterator.nextEntry(AbstractLinkedMap.java:574)
~[commons-collections4-4.4.jar:4.4]
at
org.apache.commons.collections4.map.AbstractLinkedMap$LinkMapIterator.next(AbstractLinkedMap.java:369)
~[commons-collections4-4.4.jar:4.4]
at
org.apache.commons.collections4.map.AbstractHashedMap.doWriteObject(AbstractHashedMap.java:1245)
~[commons-collections4-4.4.jar:4.4]
at
org.apache.commons.collections4.map.LinkedMap.writeObject(LinkedMap.java:134)
~[commons-collections4-4.4.jar:4.4]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[?:1.8.0_242]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:1.8.0_242]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
~[?:1.8.0_242]
at java.util.ArrayList.writeObject(ArrayList.java:766) ~[?:1.8.0_242]
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
~[?:1.8.0_242]
at java.util.ArrayList.writeObject(ArrayList.java:766) ~[?:1.8.0_242]
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1378)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
~[?:1.8.0_242]
at java.util.ArrayList.writeObject(ArrayList.java:766) ~[?:1.8.0_242]
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
~[?:1.8.0_242]
at java.util.ArrayList.writeObject(ArrayList.java:766) ~[?:1.8.0_242]
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
~[?:1.8.0_242]
at java.util.ArrayList.writeObject(ArrayList.java:766) ~[?:1.8.0_242]
at sun.reflect.GeneratedMethodAccessor58.invoke(Unknown Source) ~[?:?]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
~[?:1.8.0_242]
at
java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
~[?:1.8.0_242]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
~[?:1.8.0_242]
at
org.apache.wicket.serialize.java.JavaSerializer$SerializationCheckerObjectOutputStream.writeObjectOverride(JavaSerializer.java:368)
~[wicket-core-8.7.0.jar:8.7.0]
... 7 more
2020-04-05 11:33:01,939 - WARN [Wicket-AsyncPageStore-PageSavingThread]
org.apache.wicket.pageStore.AbstractPageStore []: Page [Page class =
some.package.application.pages.SomePage, id = 21, render count = 1] cannot be
serialized. See previous logs for possible reasons.
2020-04-05 11:33:01,939 - WARN [Wicket-AsyncPageStore-PageSavingThread]
org.apache.wicket.pageStore.DefaultPageStore []: Page [Page class =
some.package.application.pages.SomePage, id = 21, render count = 1] cannot be
serialized. See previous logs for possible reasons.
{noformat}
> AsynchronousPageStore with NotDetachedModelChecker - "Not detached model
> found" exception on several fast sequential Ajax calls
> -------------------------------------------------------------------------------------------------------------------------------
>
> Key: WICKET-6702
> URL: https://issues.apache.org/jira/browse/WICKET-6702
> Project: Wicket
> Issue Type: Bug
> Components: wicket-core
> Affects Versions: 8.5.0
> Reporter: Sergei Tkachuk
> Priority: Major
> Attachments: QuickStart.zip
>
>
> Preconditions: Application uses AsynchronousPageStore (as it is by default).
> When there are several fast sequential Ajax calls to a component, then a
> component's LoadableDetachableModel gets attached and detached several times
> before real async serialization takes place. And at times the serialization
> is initiated when the model has been already attached once again by a
> subsequent Ajax call, and not detached yet as the request is still in
> progress. This causes NotDetachedModelChecker() to throw "Not detached model
> found!" exception
> Disabling async serialization fixes the problem.
> A test-case and a log attached.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)