Attribute | Description |
---|
appContextProtection |
Enables protection so that calls to
sun.awt.AppContext.getAppContext() triggered by a web
application do not result in a memory leak. Note that a call to this
method will be triggered as part of the web application stop process so
it is strongly recommended that this protection is enabled. The default
is true .
|
AWTThreadProtection |
Enables protection so that calls to
java.awt.Toolkit.getDefaultToolkit() triggered by a web
application do not result in a memory leak.
Defaults to false because an AWT thread is launched.
|
classesToInitialize |
List of comma-separated fully qualified class names to load and initialize
during the startup of this Listener. This allows to pre-load classes that are
known to provoke classloader leaks if they are loaded during a request
processing. Non-JRE classes may be referenced, like
oracle.jdbc.driver.OracleTimeoutThreadPerVM .
The default value is empty, but specific JRE classes are loaded by other leak
protection features managed by other attributes of this Listener.
|
driverManagerProtection |
The first use of java.sql.DriverManager will trigger the
loading of JDBC Driver in the current class loader. The web
application level memory leak protection can take care of this in most
cases but triggering the loading here has fewer side-effects. The
default is true .
|
gcDaemonProtection |
Enables protection so that calls to
sun.misc.GC.requestLatency(long) triggered by a web
application do not result in a memory leak. Use of RMI is likely to
trigger a call to this method. A side effect of enabling this protection
is the creation of a thread named "GC Daemon". The protection uses
reflection to access internal Sun classes and may generate errors on
startup on non-Sun JVMs. The default is true .
|
ldapPoolProtection |
Enables protection so that the PoolCleaner thread started by
com.sun.jndi.ldap.LdapPoolManager does not result in a
memory leak. The thread is started the first time the
LdapPoolManager class is used if the system property
com.sun.jndi.ldap.connect.pool.timeout is set to a value
greater than 0. Without this protection, if a web application uses this
class the PoolCleaner thread will be configured with the thread's
context class loader set to the web application class loader which in
turn will trigger a memory leak on reload. Defaults to
true .
|
securityLoginConfigurationProtection |
Enables protection so that usage of the
javax.security.auth.login.Configuration class by a web
application does not provoke a memory leak. The first access of this
class will trigger the initializer that will retain a static reference
to the context class loader. The protection loads the class with the
system class loader to ensure that the static initializer is not
triggered by a web application. Defaults to true .
|
securityPolicyProtection |
Enables protection so that usage of the deprecated
javax.security.auth.Policy class by a web application does not
result in a memory leak. The first access of this class will trigger the
static initializer that will retain a static reference to the context
class loader. The protection calls the getPolicy() method
of this class to ensure that the static initializer is not triggered by
a web application. Defaults to true .
Note: The underlying leak has been fixed in Java 7 update 51 onwards
and Java 8 onwards. This option is unnecessary if running on a fixed
version of Java.
|
tokenPollerProtection |
Enables protection so that any token poller thread initialized by
sun.security.pkcs11.SunPKCS11.initToken() does not
result in a memory leak. The thread is started depending on various
conditions as part of the initialization of the Java Cryptography
Architecture. Without the protection this can happen during Webapp
deployment when the MessageDigest for generating session IDs is
initialized. As a result the thread has the Webapp class loader as its
thread context class loader. Enabling the protection initializes JCA
early during Tomcat startup. Defaults to true .
|
urlCacheProtection |
Enables protection so that reading resources from JAR files using
java.net.URLConnection s does not result in the JAR file
being locked. Note that enabling this protection disables caching by
default for all resources obtained via
java.net.URLConnection s. Caching may be re-enabled on a
case by case basis as required. Defaults to true .
|
xmlParsingProtection |
Enables protection so that parsing XML files within a web application
does not result in a memory leak. Note that memory profilers may not
display the GC root associated with this leak making it particularly
hard to diagnose. Defaults to true .
|