No, that is not what I mention. The point is that the Best practise has to be: Do not share Wicket components between pages.
Regards, Rik On 18 mei 2010, at 12:37, James Carman wrote: > It's just a matter of understanding how anonymous inner classes (or > named inner classes) work. It's not a Wicket thing. It's a Java > thing. So, if it's confusing, take it up with Oracle. > > On Tue, May 18, 2010 at 3:05 AM, Rik van der Kleij <rikvdkl...@gmail.com> > wrote: >> To mine opinion this Best practise is confusing. It is just a matter of do >> not share Wicket components between pages because Wicket will not detect >> while serializing pages that components are already serialized. >> >> The case of sharing anonymous IModel implementations is a special case >> because implicitly a Wicket component is shared. So you have to be careful >> with sharing models. >> >> Regards, >> Rik >> >> >> >> On 17 mei 2010, at 18:55, Jeremy Thomerson wrote: >> >>> You should use PageReference (Page#getPageReference()). >>> >>> -- >>> Jeremy Thomerson >>> http://www.wickettraining.com >>> >>> >>> >>> On Sun, May 16, 2010 at 11:52 PM, Rik van der Kleij >>> <rikvdkl...@gmail.com>wrote: >>> >>>> Hi Jeremy, >>>> >>>> So an instance field inside a page that points to another page is also >>>> something you should avoid? In our application we using this pattern a lot >>>> (for going back to previous page) but it never seems to be any problem. So >>>> probably because our pages don't consume a lot of memory. >>>> >>>> Regards, >>>> Rik >>>> >>>> On 17 mei 2010, at 06:13, Jeremy Thomerson wrote: >>>> >>>>> In general, you should not pass references to components to other pages. >>>>> That section on anonymous inner classes is telling you that when you >>>> create >>>>> an anonymous inner class and pass it to another page, you >>>>> will inadvertently be passing a reference to the outer class, which is >>>>> typically a page. This builds up memory and you will get a OOM. Passing >>>>> models between pages is absolutely fine - as long as you're not >>>> accidentally >>>>> passing a bunch of other stuff with it (including large domain objects - >>>>> which should be detached by using a detachable model). The page linked >>>> to >>>>> even says that you will often pass models between pages. >>>>> >>>>> -- >>>>> Jeremy Thomerson >>>>> http://www.wickettraining.com >>>>> >>>>> >>>>> >>>>> On Sun, May 16, 2010 at 11:05 PM, Rik van der Kleij < >>>> rikvdkl...@gmail.com>wrote: >>>>> >>>>>> Hi Bernard and Mike, >>>>>> >>>>>> According to >>>>>> >>>> https://cwiki.apache.org/WICKET/best-practices-and-gotchas.html#BestPracticesandGotchas-AnonymousInnerclassessharingmodels >>>> could eventually lead to Out of memory error. >>>>>> >>>>>> Holding a page reference in an instance field that points to another >>>> page >>>>>> looks the same but it is doesn't seems to be a problem. What's the >>>>>> difference? >>>>>> >>>>>> Regards, >>>>>> Rik >>>>>> >>>>>> >>>>>> On 16 mei 2010, at 04:39, Michael O'Cleirigh wrote: >>>>>> >>>>>>> Hello, >>>>>>> >>>>>>> I'm not sure on the answer to your question about the anonymous inner >>>>>> class but in general sharing models between pages can be a bad idea. >>>>>>> >>>>>>> The memory issues comes into play if the IModel is like Model and the >>>>>> contained object is not transient (it is serialized as part of the >>>> page). >>>>>>> >>>>>>> While Pages are serialized each page is serialized independently so on >>>>>> page reload the IModel from the first page is no longer the same object >>>>>> instance as the IModel from the second page. At deserialization time >>>> the >>>>>> page1.model.getObject().equals page2.model.getObject() but >>>>>> page1.model.getObject() != page2.model.getObject(); so any changes to >>>> either >>>>>> model are not shared between then. >>>>>>> >>>>>>> This is not a problem if the model is loadable since the memory of the >>>>>> page it is contained in doesn't matter as the value is loaded from the >>>>>> backend db or some other independent data source like the httpsession, >>>> or >>>>>> with wicketApplication. >>>>>>> >>>>>>> You can see the same effect if you try and share a model between a >>>> panel >>>>>> and a ModelWindow that uses a PageCreator >>>>>>> >>>>>>> Hope this helps, >>>>>>> >>>>>>> Mike >>>>>>>> Hi, >>>>>>>> >>>>>>>> Can someone explain me why it is a memory issue when an instance of an >>>>>> anonymous IModel class is passed to another page to be shared, but it >>>> seems >>>>>> to be no problem when a page reference is passed to another page and is >>>> put >>>>>> in an instance field (for example to be used in a button to navigate >>>> back to >>>>>> previous page)? >>>>>>>> >>>>>>>> Many thanks. >>>>>>>> >>>>>>>> Regards, >>>>>>>> Rik >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> --------------------------------------------------------------------- >>>>>>>> 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 >>>>>>> >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> 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 >>>> >>>> >> >> >> --------------------------------------------------------------------- >> 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 > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org