Interesting idea, but I'm pretty sure we get a cyclic reference
somewhere. (I'm basing that on the stacktrace below) which has been
somewhat edited for brevity:
[org.apache.wicket.Session] - Exception when detaching/serializing page
java.lang.StackOverflowError
...
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)
...
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:390)
...
at
org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:121)
...
rince & repeat, until Wicket has had enough.
/Robert
On 06/20/2011 01:01 PM, Martijn Dashorst wrote:
> Note that you can increase the max stack size, which sometimes too low
> for given component structures. We run with the default for 64 bit
> machines on our production boxes (-Xss1024k), but that is specific to
> and sufficient for our application. Your application might just push
> that boundary.
>
> You might want to try to double the size and see how that works out.
> If you still see those errors, then you might have an infinite loop
> somewhere...
>
>> From http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#threads_oom:
>
> My application has a lot of threads and is running out of memory, why?
>
> You may be running into a problem with the default stack size for
> threads. In Java SE 6, the default on Sparc is 512k in the 32-bit VM,
> and 1024k in the 64-bit VM. On x86 Solaris/Linux it is 320k in the
> 32-bit VM and 1024k in the 64-bit VM.
>
> On Windows, the default thread stack size is read from the binary
> (java.exe). As of Java SE 6, this value is 320k in the 32-bit VM and
> 1024k in the 64-bit VM.
>
> You can reduce your stack size by running with the -Xss option. For example:
>
> java -server -Xss64k
>
> Note that on some versions of Windows, the OS may round up thread
> stack sizes using very coarse granularity. If the requested size is
> less than the default size by 1K or more, the stack size is rounded up
> to the default; otherwise, the stack size is rounded up to a multiple
> of 1 MB.
>
> 64k is the least amount of stack space allowed per thread.
>
> Martijn
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
|