You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by nino martinez wael <ni...@gmail.com> on 2019/01/07 10:00:22 UTC

Wicket 8.1 + PAX Wicket 5 ConcurrentModificationException

Hi everyone, im one of the maintainers of pax wicket, and since we have
upgraded to wicket 8.1 I am regularly getting this, the project I am
getting this on are not using apache commons LinkedMap:

2019-01-07T09:58:04,024 | ERROR |
org.ops4j.pax.wicket.util.serialization.PaxWicketObjectOutputStream |
Wicket-AsyncPageStore-PageSavingThread | PaxWicketObjectOutputStream      |
166 - org.ops4j.pax.wicket.service - 5.0.0 | error writing object [Page
class = dk.netdesign.wallboard.frontend.pages.ViewerPage, id = 0, render
count = 2848]: null
java.util.ConcurrentModificationException: null
at java.util.ArrayList.writeObject(Unknown Source) ~[?:?]
at sun.reflect.GeneratedMethodAccessor48.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) ~[?:?]
at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[?:?]
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[?:?]
at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[?:?]
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) ~[?:?]
at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[?:?]
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[?:?]
at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[?:?]
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) ~[?:?]
at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[?:?]
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[?:?]
at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[?:?]
at java.io.ObjectOutputStream.writeObject(Unknown Source) ~[?:?]
at
org.apache.commons.collections4.map.AbstractHashedMap.doWriteObject(AbstractHashedMap.java:1234)
~[?:?]
at
org.apache.commons.collections4.map.LinkedMap.writeObject(LinkedMap.java:124)
~[?:?]
at sun.reflect.GeneratedMethodAccessor184.invoke(Unknown Source) ~[?:?]

which points me to a little down the stack trace to
https://github.com/ops4j/org.ops4j.pax.wicket/blob/master/service/src/main/java/org/ops4j/pax/wicket/util/serialization/PaxWicketObjectOutputStream.java#L58

Im wondering if this implemementation are wrong?

I can see that Wicket are using the LinkedMap here and are wondering why it
could throw ConcurrentModificationException:

https://github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java#L1172


(thanks for helping out)
-- 
Best regards / Med venlig hilsen
Nino Martinez

Re: Wicket 8.1 + PAX Wicket 5 ConcurrentModificationException

Posted by nino martinez wael <ni...@gmail.com>.
Hi again, I've checked our own code again.. And on our team decided to have
a seperate list of wicket components in a wicket page.. After refactoring
this to use IVisitor it went away.. So please disregard previous mail:)

On Mon, Jan 7, 2019 at 11:00 AM nino martinez wael <
nino.martinez.wael@gmail.com> wrote:

> Hi everyone, im one of the maintainers of pax wicket, and since we have
> upgraded to wicket 8.1 I am regularly getting this, the project I am
> getting this on are not using apache commons LinkedMap:
>
> 2019-01-07T09:58:04,024 | ERROR |
> org.ops4j.pax.wicket.util.serialization.PaxWicketObjectOutputStream |
> Wicket-AsyncPageStore-PageSavingThread | PaxWicketObjectOutputStream      |
> 166 - org.ops4j.pax.wicket.service - 5.0.0 | error writing object [Page
> class = dk.netdesign.wallboard.frontend.pages.ViewerPage, id = 0, render
> count = 2848]: null
> java.util.ConcurrentModificationException: null
> at java.util.ArrayList.writeObject(Unknown Source) ~[?:?]
> at sun.reflect.GeneratedMethodAccessor48.invoke(Unknown Source) ~[?:?]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
> at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
> at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) ~[?:?]
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[?:?]
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[?:?]
> at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[?:?]
> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) ~[?:?]
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[?:?]
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[?:?]
> at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[?:?]
> at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) ~[?:?]
> at java.io.ObjectOutputStream.writeSerialData(Unknown Source) ~[?:?]
> at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) ~[?:?]
> at java.io.ObjectOutputStream.writeObject0(Unknown Source) ~[?:?]
> at java.io.ObjectOutputStream.writeObject(Unknown Source) ~[?:?]
> at
> org.apache.commons.collections4.map.AbstractHashedMap.doWriteObject(AbstractHashedMap.java:1234)
> ~[?:?]
> at
> org.apache.commons.collections4.map.LinkedMap.writeObject(LinkedMap.java:124)
> ~[?:?]
> at sun.reflect.GeneratedMethodAccessor184.invoke(Unknown Source) ~[?:?]
>
> which points me to a little down the stack trace to
>
> https://github.com/ops4j/org.ops4j.pax.wicket/blob/master/service/src/main/java/org/ops4j/pax/wicket/util/serialization/PaxWicketObjectOutputStream.java#L58
>
> Im wondering if this implemementation are wrong?
>
> I can see that Wicket are using the LinkedMap here and are wondering why
> it could throw ConcurrentModificationException:
>
>
> https://github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java#L1172
>
>
> (thanks for helping out)
> --
> Best regards / Med venlig hilsen
> Nino Martinez
>


-- 
Best regards / Med venlig hilsen
Nino Martinez