You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2005/01/25 13:21:02 UTC
DO NOT REPLY [Bug 26135] -
Tomcat 5.0.16 leaks memory when a webapp is reloaded or stopped/started
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=26135>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=26135
------- Additional Comments From tobias@telenorlink.se 2005-01-25 13:21 -------
After seaching the net I found that there indeed exists a problem with Struts
that prevents web app class loaders from beeing garbage collected. The problem
is that java beans information used by Struts is cached by
java.beans.Introspector and never removed. A call to one of the methods
java.beans.Introspector.flushCaches(), java.beans.Introspector.flushCaches
(Class) or org.apache.commons.beanutils.PropertyUtilsBean.clearDescriptors()
would solve this.
After doing a bit more searching I found that the Spring framework solves this
problem by providing a servlet context listener class
(http://www.springframework.org/docs/api/org/springframework/web/util/Introspec
torCleanupListener.html) that calls Introspector.flushCaches() when a context
is destroyed.
To test this, I modified the web.xml of the struts-examples web app to include
a listener definition using IntrospectorCleanupListener. After that I ran the
WebPageConnector test program posted by James Norman on bug 32709. The program
ran over 1500 redeploys before i turned it off, at which time the memory
consumed by Tomcat (5.5) was about 30MB. Before the modification the program
could only run about 110 redeploys before an OutOfMemoryError occurred.
--
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org