Tested with 1.3.2, 1.3.3, 1.3.4, 1.3.5 and 1.4-rc1 with the exact same
results. With 1.3.0 and 1.3.1, it goes to 89KB instead of 64KB.

Is it really an unexpected behavior? If a PageB holds a reference to PageA,
it can change PageA state. The serialized version has an old, invalid state
then. When someone, later, retrieves that instance (page map/page
id/version) from the page store, Wicket must return the most actual state,
the state serialized together with PageB, right?

-Cristiano

2008/11/14 Matej Knopp <[EMAIL PROTECTED]>

> That would be a bug then. What wicket version are you using?
>
> -Matej
>
> On Fri, Nov 14, 2008 at 4:11 PM, Cristiano Kliemann
> <[EMAIL PROTECTED]> wrote:
> > Martijn,
> >
> > I'm pretty sure it is serializing PageA again. I've put some breakpoints
> to
> > confirm it (at DiskPageStore.PageSavingThread.run()). Also, the growt
> rate
> > of the page store indicates that.
> >
> > The test I've run:
> >
> > PageA has one simple link (to do some stuff and go to PageB) and a byte
> > array with 25KB.
> > PageB has another link (to go back to PageA instance), the reference to
> > PageA and a byte array of 10KB.
> >
> > After PageA is first serialized, the page store goes from nothing to
> about
> > 27KB. When PageB is serialized, it goes to about 64KB, a 37KB difference.
> >
> > Testing the same thing but letting the reference to PageA null makes a
> lot
> > of difference. When PageB is serialized, the page strore it grows from
> 27KB
> > to just 38KB (a 11KB difference).
> >
> > -Cristiano
> >
> >
> > 2008/11/14 Martijn Dashorst <[EMAIL PROTECTED]>
> >
> >> iirc Wicket serialization is smart enough to discover that PageA
> >> should not be serialized as part of PageB, but instead will replace it
> >> with a reference to PageA's serialized instance.
> >>
> >> Martijn
> >>
> >> On Fri, Nov 14, 2008 at 7:15 AM, Igor Vaynberg <[EMAIL PROTECTED]
> >
> >> wrote:
> >> > if you are using 1.4rc1 there is no need to pass page references
> >> > anymore. see Page#getPageId() and requestcycle.urlfor(pageid)
> >> >
> >> > -igor
> >> >
> >> > On Thu, Nov 13, 2008 at 6:20 PM, Cristiano Kliemann
> >> > <[EMAIL PROTECTED]> wrote:
> >> >> Hi!
> >> >>
> >> >> Some questions about Wicket serialization...
> >> >>
> >> >> Let's say I have two pages, A and B, and page B holds a reference to
> >> page A.
> >> >> First, an instance of page A is rendered and gets serialized by
> Wicket.
> >> Then
> >> >> the user clicks on a button that creates an instance of page B, sets
> a
> >> >> reference to the current page A and executes setCurrentPage using
> page B
> >> as
> >> >> the response page, like the following:
> >> >>
> >> >> PageB b = new PageB();
> >> >> b.setPageA(this);
> >> >> setResponsePage(b);
> >> >>
> >> >> The first question is: when the page B gets serialized, Wicket
> >> serializes
> >> >> the instance of page A again, right? If several of my pages need to
> hold
> >> >> references to other pages, the page store gets very big. I know that
> >> Wicket
> >> >> must serialize the same instance again because one of its attributes
> >> might
> >> >> have been changed.
> >> >>
> >> >> In my application, sometimes I need to hold references to the page
> that
> >> >> originated certain operations. Later, the user has the option to go
> back
> >> to
> >> >> that page. The 'problem' is that the originated page gets serialized
> all
> >> the
> >> >> time, and I don't need that. It gets worse when I have a chain of
> >> >> references.
> >> >>
> >> >> So, another question is: what's the best way to reference another
> page
> >> >> without serializing it again? I know I can hold the page's page map,
> id
> >> and
> >> >> version and get the instance on demand. Is it a good solution? Is
> there
> >> >> someting ready for that?
> >> >>
> >> >> Thanks
> >> >> Cristiano
> >> >>
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> > For additional commands, e-mail: [EMAIL PROTECTED]
> >> >
> >> >
> >>
> >>
> >>
> >> --
> >> Become a Wicket expert, learn from the best: http://wicketinaction.com
> >> Apache Wicket 1.3.4 is released
> >> Get it now: http://www.apache.org/dyn/closer.cgi/wicket/1.3.
> >>
> >> ---------------------------------------------------------------------
> >> 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]
>
>

Reply via email to