commit 8fac0c2bc90e0c40b5deea30d1b0c509651111c8
Author: Kirby C. Bohling <kirby.bohling@gmail.com>
Date:   Sun Jul 26 18:13:44 2009 -0500

    NUTCH-746 Cleanup NutchBean upon servlet container shutdown.

    * src/java/org/apache/nutch/searcher/NutchBean.java
      -- Close bean upon context destruction.

diff --git a/src/java/org/apache/nutch/searcher/NutchBean.java b/src/java/org/apache/nutch/searcher/NutchBean.java
index 452088b..528607c 100644
--- a/src/java/org/apache/nutch/searcher/NutchBean.java
+++ b/src/java/org/apache/nutch/searcher/NutchBean.java
@@ -413,7 +413,24 @@ implements SearchBean, SegmentBean, HitInlinks, Closeable {
    */
   public static class NutchBeanConstructor implements ServletContextListener {
 
-    public void contextDestroyed(ServletContextEvent sce) { }
+    public void contextDestroyed(ServletContextEvent sce) {
+      final ServletContext context = sce.getServletContext();
+
+      LOG.info("Closing Bean");
+      try {
+        Object tmp = context.getAttribute(NutchBean.KEY);
+
+        if (tmp instanceof NutchBean) {
+          NutchBean bean = (NutchBean) tmp;
+          bean.close();
+        } else {
+          LOG.warn("No bean configured, or the wrong type?  Potential PermGen leak, or startup problem.");
+        }
+      }
+      catch (final IOException ex) {
+        LOG.error(StringUtils.stringifyException(ex));
+      }
+    }
 
     public void contextInitialized(ServletContextEvent sce) {
       final ServletContext app = sce.getServletContext();
