Fixed root DSE access (abandon requests after wrong handling of search cursor)
diff --git a/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java b/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
index 0d425a3..26c4db2 100644
--- a/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
+++ b/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
@@ -4301,7 +4301,7 @@
@Override
public Entry getRootDse() throws LdapException
{
- return lookup( Dn.ROOT_DSE, SchemaConstants.ALL_USER_ATTRIBUTES_ARRAY );
+ return lookup( Dn.ROOT_DSE, SchemaConstants.ALL_ATTRIBUTES_ARRAY );
}
@@ -4639,6 +4639,10 @@
if ( cursor.next() )
{
rootDse = cursor.get();
+ // We have to call cursor.next() here, as we need to make sure that the "done" status of the cursor
+ // is properly updated. Otherwise the subsequent cursor.close() initiates an ABANDON operation to
+ // stop the search, which is in fact finished already.
+ cursor.next();
}
else
{