-
2004-10-11
Memory leaks due to JspWriterImpl keeping reference to ServletResponse after recycle()
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://debiannotes.blogbus.com/logs/435436.html
This problem causes severe memory leaks in JBoss app server with Jetty servlet container installed (that is using Jasper). I tested it with JBoss 3.2.6RC1 and Jetty 5.0.0. Please see related bug reports: https://sourceforge.net/tracker/? func=detail&aid=973162&group_id=22866&atid=376685 and https://sourceforge.net/tracker/? func=detail&aid=1038066&group_id=7322&atid=107322. In short, after JBoss web application context is destroyed, there is still a hard reference chain (see http://kanika.yi.org/~alexei/jbossleaks/refs-from-jasper5-PageContext-pool-to- UnifiedClassLoader3.html) from Jasper's pool of JspContexts to JBoss' UnifiedClassLoader3. The most logical place to break the chain is, in my opinion, to set org.apache.jasper.runtime.JspWriterImpl.response field to null inside JspWriterImpl.recycle() method. It looks safe, because JspWriterImpl is always initialized with a new response object before use. And it looks logical, because why should a recycled JspWriter keep reference to a response which it will never make use of, being recycled. In my test instalation, adding response = null; to JspWriterImpl.recycle() resolves the problem.
------- Additional Comments From Yoav Shapira 2004-10-05 14:52 -------Fixed in Tomcat 5.0 branch, will fix in 5.5 branch after my 11am meeting. Thanks for tracking and reporting this.
------- Additional Comments From Yoav Shapira 2004-10-05 16:09 -------Fixed.
历史上的今天:
sybase xpserver no running as service 2004-10-11sybase xpserver no running as service 2004-10-11在Windows NT上手动卸载Sybase Server 2004-10-11jboss-common-jdbc-wrapper.jar bug 2004-10-11随机文章:
jboss-common-jdbc-wrapper.jar bug 2004-10-11Permanent Generation Heap 2004-10-10OutOfMemoryException When Redeploying 2004-10-10OutOfMemoryExceptions 2004-10-10informix常用命令的用法说明 2004-09-14
收藏到:Del.icio.us







