org.apache.commons.logging.impl
Class ServletContextCleaner

java.lang.Object
  extended by org.apache.commons.logging.impl.ServletContextCleaner
All Implemented Interfaces:
EventListener, ServletContextListener

public class ServletContextCleaner
extends Object
implements 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 $

Constructor Summary
ServletContextCleaner()
           
 
Method Summary
 void contextDestroyed(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(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
 

Constructor Detail

ServletContextCleaner

public ServletContextCleaner()
Method Detail

contextDestroyed

public void contextDestroyed(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 ServletContextListener

contextInitialized

public void contextInitialized(ServletContextEvent sce)
Invoked when a webapp is deployed. Nothing needs to be done here.

Specified by:
contextInitialized in interface ServletContextListener


Copyright © 2001-2013 The Apache Software Foundation. All Rights Reserved.