Hi, More information about this memory leak problem.
This problem doesn't happen in version 1.3 (Development/deployment mode) and only happens in version 1.3.1 (development/deployment mode). Thanks. Regards Boon Ping. On Feb 12, 2008 7:36 AM, Henrik Lundahl <[EMAIL PROTECTED]> wrote: > Hi, > > In my current project we have a page with six AjaxLinks that open > different ModalWindows. We had implemented sub-classes of ModalWindow > which had field references to the content Pages (the source of the > iframes in the ModalWindows) created by ModalWindow.PageCreators. The > references were there to extract state from the Pages when the > ModalWindows were closed. The Pages also had field references to the > ModalWindows in order to call close on them. > > Using this design, the serialization/deserialization increased > seemingly exponentially for every opened and closed ModalWindow, > causing a gigantic memory leak. After opening and closing a number of > ModalWindows, a single close could consume an additional ~70 MB of > memory. > > Also, in some situations the Page.numericId was zero in > Page.writeObject, causing a ClassCastException when the Page field > references were deserialized. Since the numericId was zero, the wrong > Page (the initial Page) got deserialized. > > As far as I have been able to understand what's happening, the > problems arise because of the cycles between components and the fact > that the Pages are deserialized using different ObjectInputStreams. > I'm not sure how the numericId could become zero. > > Removing the references to the content Pages from the ModalWindow > sub-classes and using simple Models instead seems to have solved both > problems. > > Questions: > > What is happening in the serialization/deserialization when this > behavior arises? > > How can the numericId become zero in Page.writeObject (and > sub-sequentially in Page.readObject)? > > Is it generally problematic to have field references to Pages in > Components (or objects)? > > What would the most decoupled approach (object graph wise), thus > minimizing serialization, be to implementing this? > > > Thanks, > Henrik Lundahl > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
