You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Martijn Dashorst <ma...@gmail.com> on 2007/04/26 11:31:04 UTC
Why Component#getModel() is final (Was: Re: Timeframe to move wicket & wicket-ext projects to JDK1.5)
On 4/26/07, Johan Compagner <jc...@gmail.com> wrote:
> ahh and that is the change why getModel() needs to be final now...
> because here and there we are directly looking at the model field instead of
> calling getModel()
> so if you would override getModel() all that code would fail (or always see
> a null value)
>
> johan
>
>
> On 4/26/07, Jan Vermeulen <ja...@isencia.com> wrote:
> >
> >
> >
> > Johan Compagner wrote:
> > >
> > >>The initModel() is another story: I posted performance problems due to
> > the
> > >> call to initModel() within getModel() before. For now, we have that
> > code
> > >> commented on our side: no more recursive calls and gone are the
> > >> performance
> > >> problems.
> > >
> > >
> > > this still is very odd. Because walking the parent tree and calling
> > > instance
> > > of shouldn't cost
> > > any time. So if there is a test cast where i see with yourkit really a
> > > performance penalty in that area
> > > i would be looking into that.
> > >
> > > johan
> > >
> >
> > I have been looking at the code of Component:initModel() in the new trunk,
> > and there is a change there that solves our performance problem:
> > // Dont call the getModel() that could initialize many inbetween
> > // completely useless models.
> > // IModel model = current.getModel();
> > IModel model = current.model;
> > Since initModel() no longer calls getModel(), there are no longer
> > recursive
> > calls to initModel(), which solves our problem.
> >
> > Thanks.
> > --
> > View this message in context:
> > http://www.nabble.com/Timeframe-to-move-wicket---wicket-ext-projects-to-JDK1.5-tf3638110.html#a10197016
> > Sent from the Wicket - Dev mailing list archive at Nabble.com.
> >
> >
>
--
Learn Wicket at ApacheCon Europe: http://apachecon.com
Join the wicket community at irc.freenode.net: ##wicket
Wicket 1.2.6 contains a very important fix. Download Wicket now!
http://wicketframework.org
Re: Why Component#getModel() is final (Was: Re: Timeframe to move wicket & wicket-ext projects to JDK1.5)
Posted by Johan Compagner <jc...@gmail.com>.
hmm i just did see this message a bit to late.
But there are more places like detaching of the model (that one is also
pretty crucial)
If you implement getModel() to return something of your own. then the model
field won't be set
and your model will never be detached because we test for the field model !=
null model.detach()
Especially also with that case i really think we shouldn't relax this (and
that comming from me who never
is a big fan of the final keywordk ;) )
johan
On 4/26/07, Martijn Dashorst <ma...@gmail.com> wrote:
>
> On 4/26/07, Johan Compagner <jc...@gmail.com> wrote:
> > ahh and that is the change why getModel() needs to be final now...
> > because here and there we are directly looking at the model field
> instead of
> > calling getModel()
> > so if you would override getModel() all that code would fail (or always
> see
> > a null value)
> >
> > johan
> >
> >
> > On 4/26/07, Jan Vermeulen <ja...@isencia.com> wrote:
> > >
> > >
> > >
> > > Johan Compagner wrote:
> > > >
> > > >>The initModel() is another story: I posted performance problems due
> to
> > > the
> > > >> call to initModel() within getModel() before. For now, we have that
> > > code
> > > >> commented on our side: no more recursive calls and gone are the
> > > >> performance
> > > >> problems.
> > > >
> > > >
> > > > this still is very odd. Because walking the parent tree and calling
> > > > instance
> > > > of shouldn't cost
> > > > any time. So if there is a test cast where i see with yourkit
> really a
> > > > performance penalty in that area
> > > > i would be looking into that.
> > > >
> > > > johan
> > > >
> > >
> > > I have been looking at the code of Component:initModel() in the new
> trunk,
> > > and there is a change there that solves our performance problem:
> > > // Dont call the getModel() that could initialize many
> inbetween
> > > // completely useless models.
> > > // IModel model = current.getModel();
> > > IModel model = current.model;
> > > Since initModel() no longer calls getModel(), there are no longer
> > > recursive
> > > calls to initModel(), which solves our problem.
> > >
> > > Thanks.
> > > --
> > > View this message in context:
> > >
> http://www.nabble.com/Timeframe-to-move-wicket---wicket-ext-projects-to-JDK1.5-tf3638110.html#a10197016
> > > Sent from the Wicket - Dev mailing list archive at Nabble.com.
> > >
> > >
> >
>
>
> --
> Learn Wicket at ApacheCon Europe: http://apachecon.com
> Join the wicket community at irc.freenode.net: ##wicket
> Wicket 1.2.6 contains a very important fix. Download Wicket now!
> http://wicketframework.org
>