Project: Tomcat
Bug 38676 permanently reloading tagfile classes without changes to the tagfile
Reported: 2006-02-16 11:48:57 | Status: resolved fixed

Scenario: - jsp with a tag in it (tagfile, no taglib) - activate "reloading" in web.xml - clean work directory - start tomcat - load jsp Tomcat generates/compiles/load the jsp and the tagfile classes. After "checkInterval" seconds the background compile thread "JspRuntimeContext[\*]" loads the tagfile classes (and only them) again and again. This produces a lot of work for the garbage collector. (permanently class unloading of tagfile classes) A Breakpoint in the method loadTagFile() in JspServletWrapper.java will show this. Perhaps the reload flag must be set to false after loading the TagFile? JspServletWrapper.java: ... if(reload) { tagHandlerClass = ctxt.load(); reload = false; //perhaps, this solves the problem but i am not shure } ... After restarting the server the problem is not present because no JspServletWrapper is instantiated for the tagfile an therefore the backround compile task does not check the tagfile.

Files changed in fix:
java/org/apache/el/lang/ELSupport.java java/org/apache/jasper/servlet/JspServletWrapper.java