It sounds like a memory leak, but it could just be a slow garbage
collector as well. Try adding:

        System.gc() to the end of your transaction to guarantee the garbage
collector runs after each page render. Then see if repeated page renders
still blow out your memory. If they do, then I suspect that somehow you (or
tapestry, or spring) is hanging onto a reference to those object after page
completion.

        --- Pat

        PS You *are* resetting your page properties to null (and nulling out
the list of 5000 items) on the page's post-render cleanup phase, right?

> -----Original Message-----
> From: seloha . [mailto:[EMAIL PROTECTED]
> Sent: Monday, September 26, 2005 3:11 AM
> To: tapestry-user@jakarta.apache.org
> Subject: OutOfMemoryError Tapestry 4.0
> 
> I have a page which allows a user to search the database based on various
> criteria. I have restricted the number of returned items to 5000. I
> display
> the items in the same search page using the @For component with
> volatile="ognl:true" . Repeated searches which return 5000 items will
> result
> in an OutOfMemoryError exception. If I leave the page and then return or
> stay on the page I will ultimately get an OutOfMemoryError exception.
> 
> I can view other pages after this exception but a repeat of trying to
> display 5000 items on this page will display an OutOfMemory exception.
> 
> The only way to clear this problem is to restart the servlet container.
> This
> fails using either Jetty or Tomcat in both development and production
> environments (using different operating systems).
> 
> All the variables displaying the list are explicitly declared in the .page
> specification and using initial-value set to null.
> 
> I am using Tapestry 4.0 beta 8.
> 
> The data is retrieved using Spring and Hibernate (no fancy patterns,
> standard Spring declarative transactions and using getHibernateTemplate())
> and mapped to Tapestry using hivemodule.xml:
> 
>   <implementation service-
> id="hivemind.lib.DefaultSpringBeanFactoryHolder">
>     <invoke-factory>
>       <construct autowire-services="false"
> class="uk.co.cymbol.tair.tapestry.AppSpringBeanFactoryHolderImpl">
>         <event-listener service-id="hivemind.ShutdownCoordinator" />
>         <set-object property="context"
> value="service:tapestry.globals.WebContext" />
>       </construct>
>     </invoke-factory>
>   </implementation>
> 
> and injecting the appropriate Spring bean.
> 
> I am completely confused as to how to tie down the problem and isolate
> which
> section of code is causing the problem.
> 
> Any help would be much appreciated.
> 
> Paul
> 
> 
> 
> ---------------------------------------------------------------------
> 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