From d9ed5cfa7799edab307c9952cbff870008bd0fdd Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <yannick.lecaillez@forgerock.com>
Date: Tue, 28 Apr 2015 12:49:52 +0000
Subject: [PATCH] OPENDJ-1970: Wrong number of entries reported at the end of rebuild-index command.

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
index db7c6bd..90271fc 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java
@@ -2767,7 +2767,7 @@
     {
       setIndexesListsToBeRebuilt(txn);
       setRebuildListIndexesTrusted(txn, false);
-      clearIndexes(txn, true);
+      clearIndexesToBeRebuilt(txn);
     }
 
     private void throwIfCancelled() throws InterruptedException
@@ -2872,13 +2872,15 @@
       }
     }
 
-    private void clearIndexes(WriteableTransaction txn, boolean onlyDegraded) throws StorageRuntimeException
+    private void clearIndexesToBeRebuilt(WriteableTransaction txn) throws StorageRuntimeException
     {
-      // Clears all the entry's container databases which are containing the indexes
-      if (!onlyDegraded)
+      if (dn2uri != null)
       {
-        // dn2uri does not have a trusted status.
         entryContainer.clearDatabase(txn, entryContainer.getDN2URI());
+      }
+
+      if (dn2id != null)
+      {
         entryContainer.clearDatabase(txn, entryContainer.getDN2ID());
         entryContainer.clearDatabase(txn, entryContainer.getID2ChildrenCount());
       }
@@ -2886,7 +2888,7 @@
       for (Map.Entry<IndexKey, MatchingRuleIndex> mapEntry : indexMap.entrySet())
       {
         final Index index = mapEntry.getValue();
-        if (!onlyDegraded || !index.isTrusted())
+        if (!index.isTrusted())
         {
           entryContainer.clearDatabase(txn, index);
         }
@@ -2894,7 +2896,7 @@
 
       for (final VLVIndex vlvIndex : entryContainer.getVLVIndexes())
       {
-        if (!onlyDegraded || !vlvIndex.isTrusted())
+        if (!vlvIndex.isTrusted())
         {
           entryContainer.clearDatabase(txn, vlvIndex);
         }

--
Gitblit v1.10.0