Forgive my lack of understanding of Wicket internals, but do requests for
Ajax components on a particular page block when that page is being
serialized?


Matej Knopp-2 wrote:
> 
> This really looks like page being accessed from multiple threads, but
> it's quite weird. The serialization is done in request thread and
> pagemap is locked during request.
> 
> -Matej
> 
> On Thu, Dec 18, 2008 at 2:35 PM, leok <leo...@gmail.com> wrote:
>>
>> Interesting. I wonder if this error occurs when page components are being
>> modified by Ajax while being serialized, e.g. page.addOrReplace(). If so,
>> this is kind of an ugly bug. What I don't know yet is how "harmful" this
>> bug
>> is, i.e. does this error leave Wicket in a horribly inconsistent state?
>>
>>
>>
>> Xhelas wrote:
>>>
>>> Same symptoms using wocket 1.4-rc1.
>>>
>>> Regards
>>>
>>> Alexandre
>>>
>>>
>>> leok wrote:
>>>>
>>>> I was poking through some logs, and I noticed a few rare instances of
>>>> this exception:
>>>>
>>>> java.util.ConcurrentModificationException
>>>>   at
>>>> java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:365)
>>>>   at java.util.LinkedHashMap$KeyIterator.next(LinkedHashMap.java:376)
>>>>   at java.util.HashSet.writeObject(HashSet.java:254)
>>>>   at sun.reflect.GeneratedMethodAccessor3239.invoke(Unknown Source)
>>>>   at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>   at java.lang.reflect.Method.invoke(Method.java:585)
>>>>   at
>>>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
>>>>   at
>>>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1344)
>>>>   at
>>>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1295)
>>>>   at
>>>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1084)
>>>>   at
>>>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1380)
>>>>   at
>>>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1352)
>>>>   at
>>>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1295)
>>>>   at
>>>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1084)
>>>>   at
>>>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1380)
>>>>   at
>>>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1352)
>>>>   at
>>>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1295)
>>>>   at
>>>> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1084)
>>>>   at
>>>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:307)
>>>>   at java.util.HashMap.writeObject(HashMap.java:1328)
>>>>   at sun.reflect.GeneratedMethodAccessor3234.invoke(Unknown Source)
>>>>   at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>   at java.lang.reflect.Method.invoke(Method.java:585)
>>>>   at
>>>> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
>>>>   at
>>>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1344)
>>>> [..snip..]
>>>>   at
>>>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:307)
>>>>   at
>>>> org.apache.wicket.util.io.IObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:117)
>>>>   at
>>>> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:303)
>>>>   at
>>>> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1091)
>>>>   at
>>>> org.apache.wicket.protocol.http.pagestore.AbstractPageStore$PageSerializer.getPageReplacementObject(AbstractPageStore.java:278)
>>>>   at org.apache.wicket.Page.writeReplace(Page.java:1299)
>>>>   at sun.reflect.GeneratedMethodAccessor6627.invoke(Unknown Source)
>>>>   at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>   at java.lang.reflect.Method.invoke(Method.java:585)
>>>>   at
>>>> java.io.ObjectStreamClass.invokeWriteReplace(ObjectStreamClass.java:1004)
>>>> [..snip..]
>>>>   at
>>>> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1091)
>>>>   at
>>>> org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:197)
>>>>   at
>>>> org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:811)
>>>>   at
>>>> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSessionStore.java:332)
>>>>
>>>> I'm using Wicket 1.3.5. It seems there might be some strange racing
>>>> happening while pages are being serialized.
>>>>
>>>> EDIT: I actually posted before completing my message. I meant to add -
>>>> where would there be non thread-safe modifications to the serialized
>>>> page? I presume that the there must be some sort of lock on the object
>>>> when it's being serialized. More importantly - how "harmful" is this
>>>> exception?
>>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/java.util.ConcurrentModificationException-inorg.apache.wicket.protocol.http.SecondLevelCacheSessionStore%24SecondLevelCachePageMap.put-tp21062585p21072905.html
>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> 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
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/java.util.ConcurrentModificationException-inorg.apache.wicket.protocol.http.SecondLevelCacheSessionStore%24SecondLevelCachePageMap.put-tp21062585p21077839.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to