As reported on the mailing list:
On Sun, Aug 5, 2012 at 1:25 AM, petr.charvat <email@example.com> wrote:
> My application uses tapestry 5.3.4 and I deploy it on Tomcat 6.0.35.
> The internal tomcat listener JreMemoryLeakPreventionListener write to
> console this message after undeploy/redeploy my application.
> 5.8.2012 9:23:18 org.apache.catalina.loader.WebappClassLoader
> SEVERE: The web application [/FitSoftware] created a ThreadLocal with key of
> and a value of type [java.util.HashMap] (value [
]) but failed to remove it when the web application
> was stopped. This is very likely to create a memory leak.
> From the memory dump it seems, that GC can't remove previous version of the
> application and after several redeploys permspace is gone.
This does look like a bug, with a pretty easy fix.
> Is the message from tomcat memory leak detector relevant? What does the
> value 1=DEFINED means?
> Thanks for answer.
Tapestry uses this class to manage a per-thread HashMap; the values in
the HashMap are anything that Tapestry needs to track on a per-thread
(not global) basis; including the values of page and component fields,
and lots more besides. The key is an arbitrarily assigned Integer; it
has no specific meaning.