Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

JavaBean Introspector cache

Tomcat calls java.beans.Introspector.flushCaches(); when an app is stoppped.

JDBC driver registration

If a webapp contains a JDBC driver (e.g. in WEB-INF/lib), the driver will be registered with the DriverManager when it is first used. When the application is stopped, the driver should be deregistered with DriverManager to avoid a classloader leak. Since applications usually forget this, tomcat helps by deregistering the driver.

RMI target

Summary matrix

Leak type

Detected by tomcat

Fixed by tomcat

Possible enhancements

Custom ThreadLocal class

>=6.0.24

>=6.0.24

Detect child classloaders, improve thread safety

Webapp class instance as ThreadLocal value

>=6.0.24

>=6.0.24

Detect child classloaders, improve thread safety

Webapp class instance indirectly held through a ThreadLocal value

no

no

Renew threads in the worker pool

ThreadLocal pseudo-leak

>=6.0.24

>=6.0.24

improve thread safety

ContextClassLoader / Threads spawned by webapps

>=6.0.24

TimerThread are stopped. Other threads may be stopped if clearReferencesStopThreads is set to true on the Context

Detect child classloaders, don't stop TimerThread by default

ContextClassLoader / Threads spawned by classes loaded by the common classloader

>=6.0.24

TimerThread are stopped. Other threads may be stopped if clearReferencesStopThreads is set to true on the Context

Detect child classloaders, don't stop TimerThread by default

ContextClassLoader / Threads spawned by JRE classes

>=6.0.24

 

 

static class variables

 

> 6.0.?

 

LogFactory

 

> 6.0.?

 

JDBC driver registration

...

> 6.0.?

> 6.0.?

 

RMI Target

 

> 6.0.?

 

RMI target

Summary matrix

Leak type

Detected by tomcat

Fixed by tomcat

Possible enhancements

...

References

...