public class

ServletContextCleaner

extends Object
implements ServletContextListener
java.lang.Object
   ↳ org.apache.commons.logging.impl.ServletContextCleaner

Class Overview

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 accessable LogFactory class that the entry in its map for the current webapp's context classloader should be cleared.

Summary

Public Constructors
ServletContextCleaner()
Public Methods
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.
[Expand]
Inherited Methods
From class java.lang.Object
From interface javax.servlet.ServletContextListener

Public Constructors

public ServletContextCleaner ()

Public Methods

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.

public void contextInitialized (ServletContextEvent sce)

Invoked when a webapp is deployed. Nothing needs to be done here.