From f8ef0eed366445c5a341dbcc7882a7104c1cac1b Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Thu, 26 Jul 2007 16:31:34 +0000
Subject: [PATCH] This fixes issue 1971 and allows partial non-append imports of a backend:

---
 opends/src/server/org/opends/server/backends/jeb/BackendImpl.java |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java b/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
index e9fd080..bcf83cb 100644
--- a/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
+++ b/opends/src/server/org/opends/server/backends/jeb/BackendImpl.java
@@ -1070,7 +1070,7 @@
         envConfig.setConfigParam("je.env.isLocking", "true");
         envConfig.setConfigParam("je.env.runCheckpointer", "false");
       }
-      else
+      else if(importConfig.clearBackend())
       {
         // We have the writer lock on the environment, now delete the
         // environment and re-open it. Only do this when we are
@@ -1450,7 +1450,9 @@
           {
             // The base DN was deleted.
             DirectoryServer.deregisterBaseDN(baseDN, false);
-            rootContainer.removeEntryContainer(baseDN);
+            EntryContainer ec =
+                rootContainer.unregisterEntryContainer(baseDN);
+            ec.delete();
           }
         }
 
@@ -1461,7 +1463,9 @@
             try
             {
               // The base DN was added.
-              rootContainer.openEntryContainer(baseDN);
+              EntryContainer ec =
+                  rootContainer.openEntryContainer(baseDN, null);
+              rootContainer.registerEntryContainer(baseDN, ec);
               DirectoryServer.registerBaseDN(baseDN, this, false, false);
             }
             catch (Exception e)

--
Gitblit v1.10.0