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/task/ResetUserPasswordTask.java |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/task/ResetUserPasswordTask.java b/opends/src/guitools/org/opends/guitools/controlpanel/task/ResetUserPasswordTask.java
index bca2c3c..4b61f5f 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/task/ResetUserPasswordTask.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/task/ResetUserPasswordTask.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2008-2009 Sun Microsystems, Inc.
+ *      Copyright 2008-2010 Sun Microsystems, Inc.
  */
 
 package org.opends.guitools.controlpanel.task;
@@ -294,19 +294,26 @@
         NamingEnumeration<SearchResult> entries =
           ctx.search(Utilities.getJNDIName(dn.toString()), filter, ctls);
 
-        while (entries.hasMore())
+        try
         {
-          SearchResult sr = entries.next();
-          Set<String> dns = ConnectionUtils.getValues(sr, attrName);
-          for (String sDn : dns)
+          while (entries.hasMore())
           {
-            if (bindDN.equals(DN.decode(sDn)))
+            SearchResult sr = entries.next();
+            Set<String> dns = ConnectionUtils.getValues(sr, attrName);
+            for (String sDn : dns)
             {
-              isBoundAs = true;
-              break;
+              if (bindDN.equals(DN.decode(sDn)))
+              {
+                isBoundAs = true;
+                break;
+              }
             }
           }
         }
+        finally
+        {
+          entries.close();
+        }
       }
       catch (Throwable t)
       {

--
Gitblit v1.10.0