From 3749749fcfc4a3f9821fa8df2c0b93688971628e Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Mon, 31 May 2010 12:48:19 +0000
Subject: [PATCH] Fix for issue #4536. Close JNDI enumerations to avoid unbinding and closing underlying LDAP connection. Fixes in all CLI and control panel.

---
 opends/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java |   26 ++++++++++++++++++++------
 1 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java b/opends/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
index 35df024..789d655 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
@@ -826,10 +826,17 @@
       javaVersion = null;
       numberConnections = -1;
 
-      while (monitorEntries.hasMore())
+      try
       {
-        SearchResult sr = monitorEntries.next();
-        handleMonitoringSearchResult(sr, "cn=monitor");
+        while (monitorEntries.hasMore())
+        {
+          SearchResult sr = monitorEntries.next();
+          handleMonitoringSearchResult(sr, "cn=monitor");
+        }
+      }
+      finally
+      {
+        monitorEntries.close();
       }
     }
     catch (NamingException ne)
@@ -858,10 +865,17 @@
       NamingEnumeration<SearchResult> taskEntries =
         ctx.search(jndiName, filter, ctls);
 
-      while (taskEntries.hasMore())
+      try
       {
-        SearchResult sr = taskEntries.next();
-        handleTaskSearchResult(sr, ConfigConstants.DN_TASK_ROOT, ts);
+        while (taskEntries.hasMore())
+        {
+          SearchResult sr = taskEntries.next();
+          handleTaskSearchResult(sr, ConfigConstants.DN_TASK_ROOT, ts);
+        }
+      }
+      finally
+      {
+        taskEntries.close();
       }
     }
     catch (NamingException ne)

--
Gitblit v1.10.0