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=43444>. 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=43444 Summary: Class loading problem Product: Tomcat 6 Version: 6.0.14 Platform: PC OS/Version: Windows Vista Status: NEW Severity: normal Priority: P2 Component: Catalina AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] When deploying a webapp contain some TLDs and containing custom JAXP stuff, the web app is not completely removed when undeploying. The problem is that org.apache.catalina.startup.TldConfig has a static member tldDigester which uses a SAXParser. In my case a parser from the web app is being used. So since the parser (its class is loaded with the WebAppClassLoader) will be referenced from the TldConfig class (which is loaded with the StandardClassLoader) the web app class loader never gets collected which leads to a full permspace after a few redeploys. How to reproduce: Create a WAR containing an empty web.xml and jstl-1.1.2.jar, standard- 1.1.2.jar (both from Jakarta Taglibs project), xercesImpl-2.9.0.jar and xml- apis-2.9.0.jar (both from Xerces project). Run a tomcat containing just the manager web app. Deploy the WAR. Undeploy the WAR. Take a heap dump (e.g. using jmap). Analyse the dump (e.g. using jhat). Browse to the class of org.apache.catalina.startup.TldConfig. See that it is being loaded by the StandardClassLoader. Browse to the object pointed to by the tldDigester static member. Jump to the object pointed to by the parser instance member. In this example it is an org.apache.xerces.jaxp.SAXParserImpl. Jump the class of this object. See that it is being loaded by the WebAppClassLoader. This is why the WebAppClassloader will never be collected. I am using JDK 1.6.0_02. -- 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]