yup.. On Nov 16, 2010, at 12:05 PM, Martijn Dashorst wrote:
> DON'T DO THIS: > > the offending code probably was: > > add(new Label("id", new PropertyModel(getSession(), "someProperty"))); > > This hard links the session to the page, and causes a cycle when serializing. > > Martijn > > On Tue, Nov 16, 2010 at 6:59 PM, jcgarciam <jcgarc...@gmail.com> wrote: >> >> Douglas, can you share any insight of how having the session in the property >> model could actually provoke this leak? >> >> It seems weird. >> >> On Tue, Nov 16, 2010 at 2:56 PM, Igor Vaynberg-2 [via Apache Wicket] < >> ml-node+3045359-698752336-65...@n4.nabble.com<ml-node%2b3045359-698752336-65...@n4.nabble.com> >>> wrote: >> >>> it is perfectly valid to use page as the model object. in fact if you >>> wanted to pull something out of session you can simply say new >>> PropertyModel(this, "session.property"), this being the Page instance >>> you are in. >>> >>> -igor >>> >>> On Tue, Nov 16, 2010 at 9:46 AM, Douglas Ferguson >>> <[hidden email] <http://user/SendEmail.jtp?type=node&node=3045359&i=0>> >>> wrote: >>> >>>> We found it.. Finally!!! >>>> >>>> There was a property model that was using the session as the model >>> object. >>>> >>>> It would be cool if PropertyModel, etc would check for this and blow up >>> on construction. >>>> i.e. not allow Page, Session, Application as the model object... >>>> >>>> D/ >>>> On Nov 16, 2010, at 11:20 AM, Douglas Ferguson wrote: >>>> >>>>> Just tested on 1.4.13 and it still happens >>>>> >>>>> On Nov 16, 2010, at 9:43 AM, Douglas Ferguson wrote: >>>>> >>>>>> 1.4.12, but the problem has been around since a few versions back. >>>>>> >>>>>> D/ >>>>>> >>>>>> On Nov 16, 2010, at 12:43 AM, Martijn Dashorst wrote: >>>>>> >>>>>>> Are you using 1.4.13? >>>>>>> >>>>>>> Martijn >>>>>>> >>>>>>> On Tue, Nov 16, 2010 at 5:54 AM, Douglas Ferguson >>>>>>> <[hidden email]<http://user/SendEmail.jtp?type=node&node=3045359&i=1>> >>> wrote: >>>>>>>> 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) >>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Become a Wicket expert, learn from the best: >>> http://wicketinaction.com <http://wicketinaction.com?by-user=t> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: [hidden >>>>>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=2> >>>>>>> For additional commands, e-mail: [hidden >>>>>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=3> >>>>>>> >>>>>> >>>>> >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [hidden >>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=4> >>>> For additional commands, e-mail: [hidden >>>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=5> >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [hidden >>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=6> >>> For additional commands, e-mail: [hidden >>> email]<http://user/SendEmail.jtp?type=node&node=3045359&i=7> >>> >>> >>> >>> ------------------------------ >>> View message @ >>> http://apache-wicket.1842946.n4.nabble.com/StackOverflowError-tp3044241p3045359.html >>> To start a new topic under Apache Wicket, email >>> ml-node+1842946-398011874-65...@n4.nabble.com<ml-node%2b1842946-398011874-65...@n4.nabble.com> >>> To unsubscribe from Apache Wicket, click >>> here<http://apache-wicket.1842946.n4.nabble.com/template/TplServlet.jtp?tpl=unsubscribe_by_code&node=1842946&code=amNnYXJjaWFtQGdtYWlsLmNvbXwxODQyOTQ2fDEyNTYxMzc3ODY=>. >>> >>> >>> >> >> >> -- >> Sincerely, >> JC (http://www.linkedin.com/in/jcgarciam) >> Work smarter, not harder!. >> >> -- >> View this message in context: >> http://apache-wicket.1842946.n4.nabble.com/StackOverflowError-tp3044241p3045367.html >> Sent from the Users forum 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 >> >> > > > > -- > Become a Wicket expert, learn from the best: http://wicketinaction.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