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/quicksetup/org/opends/quicksetup/util/Utils.java |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java b/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java
index 5911286..bdc996f 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java
@@ -1754,19 +1754,26 @@
       LdapName jndiName = new LdapName("cn=monitor");
       NamingEnumeration<?> listeners = ctx.search(jndiName, filter, ctls);
 
-      while (listeners.hasMore())
+      try
       {
-        SearchResult sr = (SearchResult)listeners.next();
+        while (listeners.hasMore())
+        {
+          SearchResult sr = (SearchResult)listeners.next();
 
-        v = getFirstValue(sr, "currentTime");
+          v = getFirstValue(sr, "currentTime");
 
-        TimeZone utcTimeZone = TimeZone.getTimeZone("UTC");
+          TimeZone utcTimeZone = TimeZone.getTimeZone("UTC");
 
-        SimpleDateFormat formatter =
-             new SimpleDateFormat("yyyyMMddHHmmss'Z'");
-        formatter.setTimeZone(utcTimeZone);
+          SimpleDateFormat formatter =
+            new SimpleDateFormat("yyyyMMddHHmmss'Z'");
+          formatter.setTimeZone(utcTimeZone);
 
-        time = formatter.parse(v).getTime();
+          time = formatter.parse(v).getTime();
+        }
+      }
+      finally
+      {
+        listeners.close();
       }
     }
     catch (Throwable t)

--
Gitblit v1.10.0