You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by tapestryphoto <ph...@digiatlas.org> on 2009/01/29 15:31:48 UTC

Re: T5: timeout exception when using Grid - Solved, but query

My grid data required a model. In copying this in from an example I had:

@SuppressWarnings("unchecked")
	@Property
	@Retain
	private BeanModel _myModel;

The key here is @Retain.  This works fine until there is a timeout  
(default 10 mins) and the page is returned to the pool whereupon it  
becomes null and thus causes Grid to fall over when it attempts to  
render. Changing Retain to Persist cured the problem. That's rather a  
nasty gotcha.

QUESTION
--------

Currently I am creating my model in initialisePage(). If I were to  
contnue to use @Retain rather than @Persist, where should I be  
initialising my model?

thanks,
p.


Quoting tapestryphoto <ph...@digiatlas.org>:

> Further investigation reveals this is happening due to the page timing
> out and being returned to the pool by the timeout specified by the
> configuration option:
>
> tapestry.page-pool.active-window
>
> (which defaults to 10 minutes)
>
> So it would appear that it's being reset when returned to the pool.
> Unfortunately I'm not very knowledgable about this - even after
> reading the relevant info on page lifecycles. Can someone please shed
> some light on this?
>
> p.
>
>
> Quoting tapestryphoto <ph...@digiatlas.org>:
>
>>
>> Hi!
>>
>> I have a form and a grid component on one of my pages (the grid is
>> outside the form). All operates normally (using Jetty) unless I leave
>> it for 10 minutes. If I then attempt to perform a submit I get the
>> Null Pointer Exception listed below. It only happens on pages with the
>> grid component.  My Jetty session timeout (in webdefault.xml) is set
>> to 30 minutes.
>>
>> I'm not quite sure how to proceed in tracking the problem down as the
>> error is taking place in Grid. The ten minutes suggests a timeout -
>> but where?
>>
>> Help appreciated.
>>
>> Thanks,
>> p.
>>
>>
>> java.lang.NullPointerException
>>
>> Stack trace
>>
>>        *
>> org.apache.tapestry5.corelib.components.GridColumns.setupRender(GridColumns.java:112)
>>        *
>> org.apache.tapestry5.corelib.components.GridColumns.setupRender(GridColumns.java)
>>        *
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$13$1.run(ComponentPageElementImpl.java:495)
>>        *
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:917)
>>        *
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$200(ComponentPageElementImpl.java:50)
>>        *
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$13.render(ComponentPageElementImpl.java:499)
>>        *
>> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72)
>>        *
>> org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
>>        *
>> org.apache.tapestry5.services.TapestryModule$19.renderMarkup(TapestryModule.java:1200)
>>        *
>> org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1580)
>>        *
>> org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1561)
>>        *
>> org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1543)
>>        *
>> org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1525)
>>        *
>> org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1495)
>>        *
>> org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
>>        *
>> org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:57)
>>        *
>> org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:59)
>>        *
>> org.apache.tapestry5.services.TapestryModule$35.handle(TapestryModule.java:1779)
>>        *
>> org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:92)
>>        *
>> org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:71)
>>        *
>> org.apache.tapestry5.services.TapestryModule$17.service(TapestryModule.java:1029)
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5: timeout exception when using Grid - Solved, but query

Posted by tapestryphoto <ph...@digiatlas.org>.
Many thanks Ville.

Quite obvious when one sees how to do it!

p.


Quoting Ville Virtanen <vi...@cerion.fi>:

>
> This is what we use, and it works well:
>     @Retain
>     private BeanModel model;
>     {
>         model = beanModelSource.createEditModel(Organization.class,
> messages);
>         model.add("organizationType");
>         model.add("parentOrganization");
>     }
>
>     public BeanModel getModel() { return model; }
>
>  - Ville
>
>
> tapestryphoto wrote:
>>
>>
>> My grid data required a model. In copying this in from an example I had:
>>
>> @SuppressWarnings("unchecked")
>> 	@Property
>> 	@Retain
>> 	private BeanModel _myModel;
>>
>> The key here is @Retain.  This works fine until there is a timeout
>> (default 10 mins) and the page is returned to the pool whereupon it
>> becomes null and thus causes Grid to fall over when it attempts to
>> render. Changing Retain to Persist cured the problem. That's rather a
>> nasty gotcha.
>>
>> QUESTION
>> --------
>>
>> Currently I am creating my model in initialisePage(). If I were to
>> contnue to use @Retain rather than @Persist, where should I be
>> initialising my model?
>>
>> thanks,
>> p.
>>
>>
>> Quoting tapestryphoto <ph...@digiatlas.org>:
>>
>>> Further investigation reveals this is happening due to the page timing
>>> out and being returned to the pool by the timeout specified by the
>>> configuration option:
>>>
>>> tapestry.page-pool.active-window
>>>
>>> (which defaults to 10 minutes)
>>>
>>> So it would appear that it's being reset when returned to the pool.
>>> Unfortunately I'm not very knowledgable about this - even after
>>> reading the relevant info on page lifecycles. Can someone please shed
>>> some light on this?
>>>
>>> p.
>>>
>>>
>>> Quoting tapestryphoto <ph...@digiatlas.org>:
>>>
>>>>
>>>> Hi!
>>>>
>>>> I have a form and a grid component on one of my pages (the grid is
>>>> outside the form). All operates normally (using Jetty) unless I leave
>>>> it for 10 minutes. If I then attempt to perform a submit I get the
>>>> Null Pointer Exception listed below. It only happens on pages with the
>>>> grid component.  My Jetty session timeout (in webdefault.xml) is set
>>>> to 30 minutes.
>>>>
>>>> I'm not quite sure how to proceed in tracking the problem down as the
>>>> error is taking place in Grid. The ten minutes suggests a timeout -
>>>> but where?
>>>>
>>>> Help appreciated.
>>>>
>>>> Thanks,
>>>> p.
>>>>
>>>>
>>>> java.lang.NullPointerException
>>>>
>>>> Stack trace
>>>>
>>>>        *
>>>> org.apache.tapestry5.corelib.components.GridColumns.setupRender(GridColumns.java:112)
>>>>        *
>>>> org.apache.tapestry5.corelib.components.GridColumns.setupRender(GridColumns.java)
>>>>        *
>>>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$13$1.run(ComponentPageElementImpl.java:495)
>>>>        *
>>>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:917)
>>>>        *
>>>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$200(ComponentPageElementImpl.java:50)
>>>>        *
>>>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$13.render(ComponentPageElementImpl.java:499)
>>>>        *
>>>> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72)
>>>>        *
>>>> org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
>>>>        *
>>>> org.apache.tapestry5.services.TapestryModule$19.renderMarkup(TapestryModule.java:1200)
>>>>        *
>>>> org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1580)
>>>>        *
>>>> org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1561)
>>>>        *
>>>> org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1543)
>>>>        *
>>>> org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1525)
>>>>        *
>>>> org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1495)
>>>>        *
>>>> org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
>>>>        *
>>>> org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:57)
>>>>        *
>>>> org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:59)
>>>>        *
>>>> org.apache.tapestry5.services.TapestryModule$35.handle(TapestryModule.java:1779)
>>>>        *
>>>> org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:92)
>>>>        *
>>>> org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:71)
>>>>        *
>>>> org.apache.tapestry5.services.TapestryModule$17.service(TapestryModule.java:1029)
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>>
>
> --
> View this message in context:   
> http://www.nabble.com/T5%3A-timeout-exception-when-using-Grid-tp21707398p21742849.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5: timeout exception when using Grid - Solved, but query

Posted by Ville Virtanen <vi...@cerion.fi>.
This is what we use, and it works well:
    @Retain
    private BeanModel model;
    {
        model = beanModelSource.createEditModel(Organization.class,
messages);
        model.add("organizationType");
        model.add("parentOrganization");
    }

    public BeanModel getModel() { return model; }

 - Ville


tapestryphoto wrote:
> 
> 
> My grid data required a model. In copying this in from an example I had:
> 
> @SuppressWarnings("unchecked")
> 	@Property
> 	@Retain
> 	private BeanModel _myModel;
> 
> The key here is @Retain.  This works fine until there is a timeout  
> (default 10 mins) and the page is returned to the pool whereupon it  
> becomes null and thus causes Grid to fall over when it attempts to  
> render. Changing Retain to Persist cured the problem. That's rather a  
> nasty gotcha.
> 
> QUESTION
> --------
> 
> Currently I am creating my model in initialisePage(). If I were to  
> contnue to use @Retain rather than @Persist, where should I be  
> initialising my model?
> 
> thanks,
> p.
> 
> 
> Quoting tapestryphoto <ph...@digiatlas.org>:
> 
>> Further investigation reveals this is happening due to the page timing
>> out and being returned to the pool by the timeout specified by the
>> configuration option:
>>
>> tapestry.page-pool.active-window
>>
>> (which defaults to 10 minutes)
>>
>> So it would appear that it's being reset when returned to the pool.
>> Unfortunately I'm not very knowledgable about this - even after
>> reading the relevant info on page lifecycles. Can someone please shed
>> some light on this?
>>
>> p.
>>
>>
>> Quoting tapestryphoto <ph...@digiatlas.org>:
>>
>>>
>>> Hi!
>>>
>>> I have a form and a grid component on one of my pages (the grid is
>>> outside the form). All operates normally (using Jetty) unless I leave
>>> it for 10 minutes. If I then attempt to perform a submit I get the
>>> Null Pointer Exception listed below. It only happens on pages with the
>>> grid component.  My Jetty session timeout (in webdefault.xml) is set
>>> to 30 minutes.
>>>
>>> I'm not quite sure how to proceed in tracking the problem down as the
>>> error is taking place in Grid. The ten minutes suggests a timeout -
>>> but where?
>>>
>>> Help appreciated.
>>>
>>> Thanks,
>>> p.
>>>
>>>
>>> java.lang.NullPointerException
>>>
>>> Stack trace
>>>
>>>        *
>>> org.apache.tapestry5.corelib.components.GridColumns.setupRender(GridColumns.java:112)
>>>        *
>>> org.apache.tapestry5.corelib.components.GridColumns.setupRender(GridColumns.java)
>>>        *
>>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$13$1.run(ComponentPageElementImpl.java:495)
>>>        *
>>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:917)
>>>        *
>>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$200(ComponentPageElementImpl.java:50)
>>>        *
>>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$13.render(ComponentPageElementImpl.java:499)
>>>        *
>>> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72)
>>>        *
>>> org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
>>>        *
>>> org.apache.tapestry5.services.TapestryModule$19.renderMarkup(TapestryModule.java:1200)
>>>        *
>>> org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1580)
>>>        *
>>> org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1561)
>>>        *
>>> org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1543)
>>>        *
>>> org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1525)
>>>        *
>>> org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1495)
>>>        *
>>> org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
>>>        *
>>> org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:57)
>>>        *
>>> org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:59)
>>>        *
>>> org.apache.tapestry5.services.TapestryModule$35.handle(TapestryModule.java:1779)
>>>        *
>>> org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:92)
>>>        *
>>> org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:71)
>>>        *
>>> org.apache.tapestry5.services.TapestryModule$17.service(TapestryModule.java:1029)
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/T5%3A-timeout-exception-when-using-Grid-tp21707398p21742849.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org