[
https://issues.apache.org/jira/browse/WICKET-2051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12667706#action_12667706
]
Matej Knopp commented on WICKET-2051:
-------------------------------------
WicketObjectStreamFactory is experimental and shouldn't really be used.
SimpleSynchronousFilePageStore is not meant to be used in production.
What is your VM heap size? And what components are on page? It might be that
you have non-transient references to big objects in your page that cause OOM
during serialization.
> OutOfMemoryError while serializing page
> ---------------------------------------
>
> Key: WICKET-2051
> URL: https://issues.apache.org/jira/browse/WICKET-2051
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.4-RC1
> Reporter: Yosi
> Assignee: Matej Knopp
>
> getting OutOfMemoryError while serializing page.
> * I have a page containing a ModalWindow showing a Page.
> * When closing the modal I get the following exception (see below).
> * Objects.setObjectStreamFactory(new WicketObjectStreamFactory()) seem to fix
> the problem.
> * (using SimpleSynchronousFilePageStore() instead of DiskPageStore also fixes
> the problem).
> And also some questions:
> * why do we need WicketObjectStreamFactory?
> * is it ok to use it?
> * why isn't it the default?
> java.lang.OutOfMemoryError: Java heap space
> at java.util.Arrays.copyOf(Arrays.java:2786)
> at
> java.io.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:133)
> at
> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1107)
> at
> org.apache.wicket.protocol.http.pagestore.AbstractPageStore$PageSerializer.getPageReplacementObject(AbstractPageStore.java:281)
> at org.apache.wicket.Page.writeReplace(Page.java:1320)
> at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> java.io.ObjectStreamClass.invokeWriteReplace(ObjectStreamClass.java:1032)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1107)
> at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at
> org.apache.wicket.util.io.IObjectStreamFactory$DefaultObjectStreamFactory$2.writeObjectOverride(IObjectStreamFactory.java:119)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322)
> at
> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1097)
> at
> org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(AbstractPageStore.java:199)
> at
> org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(DiskPageStore.java:814)
> at
> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put(SecondLevelCacheSessionStore.java:327)
> at org.apache.wicket.Session.requestDetached(Session.java:1390)
> at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1113)
> at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1385)
> at org.apache.wicket.RequestCycle.request(RequestCycle.java:498)
> at
> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:444)
> at
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
> at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1089)
> at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.