From 66c1a80d263b71195a525d1c1fdd59e464a606ae Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Fri, 20 Aug 2010 13:39:26 +0000
Subject: [PATCH] Fix all command lines that are doing Searches with JNDI, to avoid them sending systematic Abandon requests.

---
 opends/src/server/org/opends/server/admin/client/ldap/JNDIDirContextAdaptor.java |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/opends/src/server/org/opends/server/admin/client/ldap/JNDIDirContextAdaptor.java b/opends/src/server/org/opends/server/admin/client/ldap/JNDIDirContextAdaptor.java
index 7df97bf..bbe90b8 100644
--- a/opends/src/server/org/opends/server/admin/client/ldap/JNDIDirContextAdaptor.java
+++ b/opends/src/server/org/opends/server/admin/client/ldap/JNDIDirContextAdaptor.java
@@ -228,17 +228,20 @@
    */
   @Override
   public boolean entryExists(LdapName dn) throws NamingException {
+    boolean entryExists = false;
     String filter = "(objectClass=*)";
     SearchControls controls = new SearchControls();
     controls.setSearchScope(SearchControls.OBJECT_SCOPE);
-
+    controls.setReturningAttributes(new String[]{"1.1"});
     try {
       NamingEnumeration<SearchResult> results = dirContext.search(dn, filter,
           controls);
       try
       {
-        if (results.hasMore()) {
-          return true;
+        while (results.hasMore()) {
+          // To avoid having a systematic abandon in the server.
+          results.next();
+          entryExists = true;
         }
       }
       finally
@@ -248,7 +251,7 @@
     } catch (NameNotFoundException e) {
       // Fall through - entry not found.
     }
-    return false;
+    return entryExists;
   }
 
 

--
Gitblit v1.10.0