From fdb3fa313407639240f75ec566865cea25bc039b Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 11 Jul 2016 12:01:16 +0000
Subject: [PATCH] Partial OPENDJ-2625 Convert all code that uses JNDI to use the SDK instead

---
 opendj-server-legacy/src/main/java/org/opends/admin/ads/ADSContext.java |   33 +++++++++------------------------
 1 files changed, 9 insertions(+), 24 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/admin/ads/ADSContext.java b/opendj-server-legacy/src/main/java/org/opends/admin/ads/ADSContext.java
index 8f77ab9..1e94dd9 100644
--- a/opendj-server-legacy/src/main/java/org/opends/admin/ads/ADSContext.java
+++ b/opendj-server-legacy/src/main/java/org/opends/admin/ads/ADSContext.java
@@ -35,9 +35,6 @@
 import java.util.SortedSet;
 import java.util.TreeSet;
 
-import javax.naming.NamingException;
-import javax.naming.ldap.Control;
-import javax.naming.ldap.LdapContext;
 import javax.naming.ldap.Rdn;
 
 import org.forgerock.i18n.LocalizableMessage;
@@ -54,7 +51,9 @@
 import org.forgerock.opendj.ldap.ModificationType;
 import org.forgerock.opendj.ldap.RDN;
 import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.controls.SubtreeDeleteRequestControl;
 import org.forgerock.opendj.ldap.requests.AddRequest;
+import org.forgerock.opendj.ldap.requests.DeleteRequest;
 import org.forgerock.opendj.ldap.requests.ModifyRequest;
 import org.forgerock.opendj.ldap.requests.SearchRequest;
 import org.forgerock.opendj.ldap.responses.Result;
@@ -959,36 +958,22 @@
       removeAdministrators ? getAdministratorContainerDN() : null };
     try
     {
-      Control[] controls = new Control[] { new SubtreeDeleteControl() };
-      LdapContext tmpContext = connectionWrapper.getLdapContext().newInstance(controls);
-      try
+      for (String dn : dns)
       {
-        for (String dn : dns)
+        if (dn != null)
         {
-          if (dn != null)
+          if (isExistingEntry(dn))
           {
-            if (isExistingEntry(dn))
-            {
-              tmpContext.destroySubcontext(dn);
-            }
+            DeleteRequest request = newDeleteRequest(dn)
+                .addControl(SubtreeDeleteRequestControl.newControl(true));
+            connectionWrapper.getConnection().delete(request);
           }
         }
       }
-      finally
-      {
-        try
-        {
-          tmpContext.close();
-        }
-        catch (Exception ex)
-        {
-          logger.warn(LocalizableMessage.raw("Error while closing LDAP connection after removing admin data", ex));
-        }
-      }
       // Recreate the container entries:
       createAdminDataContainers();
     }
-    catch (NamingException x)
+    catch (LdapException x)
     {
       throw new ADSContextException(ErrorType.ERROR_UNEXPECTED, x);
     }

--
Gitblit v1.10.0