Some time ago I posted to the list regarding a stack overflow error that I was 
receiving and the advice was to make sure that I didn't have a page storing a 
reference to another page.
We did track this down and have just had to ignore it in the production logs.  
Now we've made it a priority to track this down.

Anyway, we've recently tracked this down to "AutomaticMultiWindowSupport" 
feature. We are able to recreate the bug by pasting a url into a new browser 
window and thus generating a new pagemap. On a certain page the memory 
consumption doubles as you generate new pagemaps (see the chart below). The 
profile is indicating that the memory is being taken up by a hashmap, but 
that's as far as we've been able to trace it so far.

> PageMap #    Size    Growth
> 13    389523448    1.93
> 12    202059096    1.93
> 11    104804096    1.93
> 10    54352280    1.93
> 9    28182760    1.93
> 8    14594976    1.93
> 7    7549336    1.94
> 6    3900704    1.94
> 5    2013480    2
> 4    1006960    2
> 3    503696    2
> 2    252072    1.86
> 1    135704


Any thoughts or tips on trying to get to the bottom of this one?

Here's the stack trace

>       at sun.reflect.GeneratedMethodAccessor42.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.writeObject(Unknown Source)
>       at java.util.LinkedList.writeObject(Unknown Source)
>       at sun.reflect.GeneratedMethodAccessor40.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.defaultWriteFields(Unknown Source)
>       at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source)
>       at org.apache.wicket.Component.writeObject(Component.java:4660)
>       at sun.reflect.GeneratedMethodAccessor38.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.writeArray(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.writeArray(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.writeArray(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.writeArray(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.writeArray(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.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121)
>       at java.io.ObjectOutputStream.writeObject(Unknown Source)
>       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.prepareForSerialization(DiskPageStore.java:1190)
>       at 
> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.writeObject(SecondLevelCacheSessionStore.java:389)



Reply via email to