org.apache.commons.logging.impl
Class ServletContextCleaner
java.lang.Object
org.apache.commons.logging.impl.ServletContextCleaner
- All Implemented Interfaces:
- java.util.EventListener, javax.servlet.ServletContextListener
public class ServletContextCleaner
- extends java.lang.Object
- implements javax.servlet.ServletContextListener
This class is capable of receiving notifications about the undeployment of
a webapp, and responds by ensuring that commons-logging releases all
memory associated with the undeployed webapp.
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 $
Method Summary |
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. |
void |
contextInitialized(javax.servlet.ServletContextEvent sce)
Invoked when a webapp is deployed. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RELEASE_SIGNATURE
private static final java.lang.Class[] RELEASE_SIGNATURE
ServletContextCleaner
public ServletContextCleaner()
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 interface javax.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 interface javax.servlet.ServletContextListener
Copyright 2002-2013 The Apache Software Foundation.