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/datamodel/CustomSearchResult.java | 29 ++++++++++++++++++-----------
1 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/CustomSearchResult.java b/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/CustomSearchResult.java
index 76e71fa..7b01be9 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/CustomSearchResult.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/CustomSearchResult.java
@@ -135,20 +135,27 @@
if (attrs != null)
{
NamingEnumeration<?> en = attrs.getAll();
- while (en.hasMore()) {
- Attribute attr = (Attribute)en.next();
- String attrName = attr.getID();
- attrNames.add(attrName);
- List<Object> values = new ArrayList<Object>();
- for (int i=0; i<attr.size(); i++)
- {
- Object v = attr.get(i);
- if (!"".equals(v.toString()))
+ try
+ {
+ while (en.hasMore()) {
+ Attribute attr = (Attribute)en.next();
+ String attrName = attr.getID();
+ attrNames.add(attrName);
+ List<Object> values = new ArrayList<Object>();
+ for (int i=0; i<attr.size(); i++)
{
- values.add(v);
+ Object v = attr.get(i);
+ if (!"".equals(v.toString()))
+ {
+ values.add(v);
+ }
}
+ attributes.put(attrName.toLowerCase(), values);
}
- attributes.put(attrName.toLowerCase(), values);
+ }
+ finally
+ {
+ en.close();
}
}
toString = calculateToString();
--
Gitblit v1.10.0