I don't believe that calling System.gc() will have the immediate affect you require. The call is more of a request than a command.
-----Original Message----- From: seloha . [mailto:[EMAIL PROTECTED] Sent: Mon 9/26/2005 12:54 PM To: tapestry-user@jakarta.apache.org Subject: RE: OutOfMemoryError Tapestry 4.0 Thanks Pat, One thing I was not doing which you pointed out was setting the list to null in pageDetached(PageEvent event) so I added this and also included System.gc(). This unfortunately had no affect. The list uses abstract getter and setter and is initialized in the .page spec with initial-value="ognl:null". I have a number of selection models for PropertySelection components which are initialized lazily which I am not resetting to null each time (but there are only about 100 total items in these objects). Could these have any affect. I am really poking around in the dark. Similar Spring and Hibernate mechanism that I wrote using Tapestry 3.0.3 is on a production system and has run with no problems for months. Admittedly I never go and display 5000 objects at once though! I cannot see that I am inadvertently holding onto any objects in the code but you never know? Thanks again for your help, Paul Patrick Casey <[EMAIL PROTECTED]> wrote: 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]