|Summary:||BundleSupport.release() does not call super.release() to clear bodyContent|
|Product:||Taglibs||Reporter:||Jim Frederic <jfrederic>|
|Component:||Standard Taglib||Assignee:||Tomcat Developers Mailing List <dev>|
Description Jim Frederic 2010-09-08 12:32:43 UTC
I'm running standard-1.1.2.jar in Tomcat 5.5. Profiling reveals large memory usage in org.apache.jasper.runtime.BodyContentImpl objects. I believe this is because org.apache.taglibs.standard.tag.common.fmt.BundleTagSupport does not call super.release() from it's release() method. The superclass, BodyTagSupport, nulls the reference to bodyContent in it's release() method. The BundleTag instances are pooled by the container, so in between requests the most recent bodyContent cannot be garbage collected. It will be reset on the next startTag() invocation, so the tag behavior is correct, but the memory usage is much higher than it should be.
Comment 1 Jeremy Boynes 2010-09-10 01:44:03 UTC
Sounds plausible. If you add the call to super.release() does the memory usage improve?