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]

Reply via email to