Class ServletContextCleaner
- All Implemented Interfaces:
EventListener
,javax.servlet.ServletContextListener
In general, the WeakHashtable support added in commons-logging release 1.1 ensures that logging classes do not hold references that prevent an undeployed webapp's memory from being garbage-collected even when multiple copies of commons-logging are deployed via multiple classloaders (a situation that earlier versions had problems with). However there are some rare cases where the WeakHashtable approach does not work; in these situations specifying this class as a listener for the web application will ensure that all references held by commons-logging are fully released.
To use this class, configure the webapp deployment descriptor to call this class on webapp undeploy; the contextDestroyed method will tell every accessible LogFactory class that the entry in its map for the current webapp's context classloader should be cleared.
- Since:
- 1.1
- Version:
- $Id: ServletContextCleaner.java 1432580 2013-01-13 10:41:05Z tn $
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
contextDestroyed
(javax.servlet.ServletContextEvent sce) Invoked when a webapp is undeployed, this tells the LogFactory class to release any logging information related to the current contextClassloader.void
contextInitialized
(javax.servlet.ServletContextEvent sce) Invoked when a webapp is deployed.
-
Field Details
-
RELEASE_SIGNATURE
-
-
Constructor Details
-
ServletContextCleaner
public ServletContextCleaner()
-
-
Method Details
-
contextDestroyed
public void contextDestroyed(javax.servlet.ServletContextEvent sce) Invoked when a webapp is undeployed, this tells the LogFactory class to release any logging information related to the current contextClassloader.- Specified by:
contextDestroyed
in interfacejavax.servlet.ServletContextListener
-
contextInitialized
public void contextInitialized(javax.servlet.ServletContextEvent sce) Invoked when a webapp is deployed. Nothing needs to be done here.- Specified by:
contextInitialized
in interfacejavax.servlet.ServletContextListener
-