# Class JreMemoryLeakPreventionListener

java.lang.Object
org.apache.catalina.core.JreMemoryLeakPreventionListener

All Implemented Interfaces:
  `LifecycleListener`

public class JreMemoryLeakPreventionListener extends Object implements LifecycleListener
Provide a workaround for known places where the Java Runtime environment can cause a memory leak or lock files.

Memory leaks occur when JRE code uses the context class loader to load a singleton as this will cause a memory leak if a web application class loader happens to be the context class loader at the time. The work-around is to initialise these singletons when Tomcat's common class loader is the context class loader.

Locked files usually occur when a resource inside a JAR is accessed without first disabling Jar URL connection caching. The workaround is to disable this caching by default.

This listener must only be nested within `Server` elements.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JreMemoryLeakPreventionListener()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getClassesToInitialize()`
  `boolean`
  `getForkJoinCommonPoolProtection()`
  `boolean`
  `getInitSeedGenerator()`
  `boolean`
  `isAppContextProtection()`
  `boolean`
  `isAWTThreadProtection()`
  `boolean`
  `isDriverManagerProtection()`
  `boolean`
  `isGcDaemonProtection()`
  `boolean`
  `isLdapPoolProtection()`
  `boolean`
  `isTokenPollerProtection()`
  `boolean`
  `isUrlCacheProtection()`
  `boolean`
  `isXmlParsingProtection()`
  `void`
  `lifecycleEvent(LifecycleEvent event)`
  Acknowledge the occurrence of the specified event.
  `void`
  `setAppContextProtection(boolean appContextProtection)`
  `void`
  `setAWTThreadProtection(boolean awtThreadProtection)`
  `void`
  `setClassesToInitialize(String classesToInitialize)`
  `void`
  `setDriverManagerProtection(boolean driverManagerProtection)`
  `void`
  `setForkJoinCommonPoolProtection(boolean forkJoinCommonPoolProtection)`
  `void`
  `setGcDaemonProtection(boolean gcDaemonProtection)`
  `void`
  `setInitSeedGenerator(boolean initSeedGenerator)`
  `void`
  `setLdapPoolProtection(boolean ldapPoolProtection)`
  `void`
  `setTokenPollerProtection(boolean tokenPollerProtection)`
  `void`
  `setUrlCacheProtection(boolean urlCacheProtection)`
  `void`
  `setXmlParsingProtection(boolean xmlParsingProtection)`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### JreMemoryLeakPreventionListener

    public JreMemoryLeakPreventionListener()

- ## Method Details

  - ### isAppContextProtection

    public boolean isAppContextProtection()

  - ### setAppContextProtection

    public void setAppContextProtection(boolean appContextProtection)

  - ### isAWTThreadProtection

    public boolean isAWTThreadProtection()

  - ### setAWTThreadProtection

    public void setAWTThreadProtection(boolean awtThreadProtection)

  - ### isGcDaemonProtection

    public boolean isGcDaemonProtection()

  - ### setGcDaemonProtection

    public void setGcDaemonProtection(boolean gcDaemonProtection)

  - ### isTokenPollerProtection

    public boolean isTokenPollerProtection()

  - ### setTokenPollerProtection

    public void setTokenPollerProtection(boolean tokenPollerProtection)

  - ### isUrlCacheProtection

    public boolean isUrlCacheProtection()

  - ### setUrlCacheProtection

    public void setUrlCacheProtection(boolean urlCacheProtection)

  - ### isXmlParsingProtection

    public boolean isXmlParsingProtection()

  - ### setXmlParsingProtection

    public void setXmlParsingProtection(boolean xmlParsingProtection)

  - ### isLdapPoolProtection

    public boolean isLdapPoolProtection()

  - ### setLdapPoolProtection

    public void setLdapPoolProtection(boolean ldapPoolProtection)

  - ### isDriverManagerProtection

    public boolean isDriverManagerProtection()

  - ### setDriverManagerProtection

    public void setDriverManagerProtection(boolean driverManagerProtection)

  - ### getForkJoinCommonPoolProtection

    public boolean getForkJoinCommonPoolProtection()

  - ### setForkJoinCommonPoolProtection

    public void setForkJoinCommonPoolProtection(boolean forkJoinCommonPoolProtection)

  - ### getClassesToInitialize

    public String getClassesToInitialize()

  - ### setClassesToInitialize

    public void setClassesToInitialize(String classesToInitialize)

  - ### getInitSeedGenerator

    public boolean getInitSeedGenerator()

  - ### setInitSeedGenerator

    public void setInitSeedGenerator(boolean initSeedGenerator)

  - ### lifecycleEvent

    public void lifecycleEvent(LifecycleEvent event)
    Description copied from interface: `LifecycleListener`
    Acknowledge the occurrence of the specified event.
    Specified by:
      `lifecycleEvent` in interface `LifecycleListener`
    Parameters:
      `event` - LifecycleEvent that has occurred