Leak cause
| Detected by tomcat
| Fixed by tomcat
| Possible enhancements
|
Custom ThreadLocal class
| >=6.0.24
| >= 7.0.6
| |
Webapp class instance as ThreadLocal value
| >=6.0.24
| >= 7.0.6
| |
Webapp class instance indirectly held through a ThreadLocal value
| no
| >= 7.0.6
| |
ThreadLocal pseudo-leak
| >=6.0.24
| >= 7.0.6
| |
ContextClassLoader / Threads spawned by webapps
| >=6.0.24
| In 6.0.24-6.0.26 TimerThread are stopped but it may lead to problems. Optional from 6.0.27 with the clearReferencesStopTimerThreads flag. Other threads may be stopped with the clearReferencesStopThreads flag, but it's unsafe.
| Fix the application to stop the thread when the application is stopped
|
ContextClassLoader / Threads spawned by classes loaded by the common classloader
| >=6.0.24
| In 6.0.24-6.0.26 TimerThread are stopped but it may lead to problems. Optional from 6.0.27 with the clearReferencesStopTimerThreads flag. Other threads may be stopped with the clearReferencesStopThreads flag, but it's unsafe.
| Fix the offending code (set the correct CCL when spawning the thread)
|
ContextClassLoader / Threads spawned by JRE classes
| no
| >=6.0.24 pre-spawns some known offenders
| |
static class variables
| no
| > 6.0.? . Disabled by default with tomcat 7
| |
LogFactory
| | > 6.0.?
| |
JDBC driver registration
| > 6.0.?
| > 6.0.?
| |
RMI Target
| | > 6.0.?
| |