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]