Not sure whether this is explicitly documented but this is how this panel
should be used anyway.


On Tue, Nov 13, 2012 at 5:21 PM, Ernesto Reinaldo Barreiro <
[email protected]> wrote:

> It wouldn't be a problem if debug bar was the "last" component to be
> rendered... I do agree information is  misleading without detaching.
>
> On Tue, Nov 13, 2012 at 4:06 PM, Martin Grigorov <[email protected]
> >wrote:
>
> > Only if you use the debug bar.
> > Currently the showed size is misleading IMO.
> >
> >
> > On Tue, Nov 13, 2012 at 5:04 PM, Ernesto Reinaldo Barreiro <
> > [email protected]> wrote:
> >
> > > Wouldn't this make complex pages (e.g. with lots of LDMs) much more
> slow?
> > >
> > > On Tue, Nov 13, 2012 at 3:58 PM, Martin Grigorov <[email protected]
> > > >wrote:
> > >
> > > > Hi,
> > > >
> > > > The debug panel in wicket-devutils uses WicketObjects#sizeOf() to
> > > calculate
> > > > the size of the page and the session.
> > > >
> > > > The "problem" that I see is that it calculates the size of the
> > > non-detached
> > > > object. I think what really matters is the size after detaching it,
> > > because
> > > > this is what is being saved in the http session and the disk, and I
> > guess
> > > > this is what the developer needs to know actually.
> > > >
> > > > Since #detach() can be called at any time, and several times per
> > request
> > > > processing I suggest the following change:
> > > >
> > > > ---
> > > >
> > > >
> > >
> >
> a/wicket-core/src/main/java/org/apache/wicket/core/util/lang/WicketObjects.java
> > > > +++
> > > >
> > > >
> > >
> >
> b/wicket-core/src/main/java/org/apache/wicket/core/util/lang/WicketObjects.java
> > > > @@ -31,6 +31,7 @@ import org.apache.wicket.Application;
> > > >  import org.apache.wicket.Component;
> > > >  import org.apache.wicket.WicketRuntimeException;
> > > >  import org.apache.wicket.application.IClassResolver;
> > > > +import org.apache.wicket.model.IDetachable;
> > > >  import org.apache.wicket.serialize.ISerializer;
> > > >  import org.apache.wicket.serialize.java.JavaSerializer;
> > > >  import org.apache.wicket.settings.IApplicationSettings;
> > > > @@ -416,6 +417,15 @@ public class WicketObjects
> > > >          */
> > > >         public static long sizeof(final Serializable object)
> > > >         {
> > > > +               if (object instanceof Component)
> > > > +               {
> > > > +                       ((Component) object).detach();
> > > > +               }
> > > > +               else if (object instanceof IDetachable)
> > > > +               {
> > > > +                       ((IDetachable) object).detach();
> > > > +               }
> > > > +
> > > >                 return objectSizeOfStrategy.sizeOf(object);
> > > >         }
> > > >
> > > >
> > > > Do you see any problems with this ?
> > > >
> > > > --
> > > > Martin Grigorov
> > > > jWeekend
> > > > Training, Consulting, Development
> > > > http://jWeekend.com <http://jweekend.com/>
> > > >
> > >
> > >
> > >
> > > --
> > > Regards - Ernesto Reinaldo Barreiro
> > > Antilia Soft
> > > http://antiliasoft.com/ <http://antiliasoft.com/antilia>
> > >
> >
> >
> >
> > --
> > Martin Grigorov
> > jWeekend
> > Training, Consulting, Development
> > http://jWeekend.com <http://jweekend.com/>
> >
>
>
>
> --
> Regards - Ernesto Reinaldo Barreiro
> Antilia Soft
> http://antiliasoft.com/ <http://antiliasoft.com/antilia>
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>

Reply via email to