From a465378dd21226dd26665300c5aadb1eedef5caa Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 11 Mar 2015 13:37:19 +0000
Subject: [PATCH] OPENDJ-1708 Persistit: no rebuild-index support

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/Importer.java |   45 +++++++++++++++++----------------------------
 1 files changed, 17 insertions(+), 28 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/Importer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/Importer.java
index a7d502d..13a3901 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/Importer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/Importer.java
@@ -1796,7 +1796,6 @@
     private final DatabaseEntry dbKey, dbValue;
     private final int cacheSize;
     private final Map<Integer, DNState> dnStateMap = new HashMap<Integer, DNState>();
-    private final Map<Integer, Index> indexMap = new HashMap<Integer, Index>();
     private final Semaphore permits;
     private final int maxPermits;
     private final AtomicLong bytesRead = new AtomicLong();
@@ -2041,7 +2040,7 @@
             }
             else if (b.compare(key, indexID) != 0)
             {
-              addToDB(insertIDSet, deleteIDSet, indexID);
+              addToDB(indexID, insertIDSet, deleteIDSet);
               keyCount.incrementAndGet();
 
               indexID = b.getIndexID();
@@ -2088,7 +2087,7 @@
 
           if (key != null)
           {
-            addToDB(insertIDSet, deleteIDSet, indexID);
+            addToDB(indexID, insertIDSet, deleteIDSet);
           }
         }
         return null;
@@ -2104,40 +2103,30 @@
       }
     }
 
-    private void addToDB(ImportIDSet insertSet, ImportIDSet deleteSet,
-        int indexID) throws DirectoryException
+    private void addToDB(int indexID, ImportIDSet insertSet, ImportIDSet deleteSet) throws DirectoryException
     {
-      if (!indexMgr.isDN2ID())
+      if (indexMgr.isDN2ID())
+      {
+        addDN2ID(indexID, insertSet);
+      }
+      else
       {
         if (deleteSet.size() > 0 || !deleteSet.isDefined())
         {
           dbKey.setData(deleteSet.getKey().array(), 0, deleteSet.getKey().limit());
           final Index index = idContainerMap.get(indexID);
           index.delete(dbKey, deleteSet, dbValue);
-          if (!indexMap.containsKey(indexID))
-          {
-            indexMap.put(indexID, index);
-          }
         }
         if (insertSet.size() > 0 || !insertSet.isDefined())
         {
           dbKey.setData(insertSet.getKey().array(), 0, insertSet.getKey().limit());
           final Index index = idContainerMap.get(indexID);
           index.insert(dbKey, insertSet, dbValue);
-          if (!indexMap.containsKey(indexID))
-          {
-            indexMap.put(indexID, index);
-          }
         }
       }
-      else
-      {
-        addDN2ID(insertSet, indexID);
-      }
     }
 
-    private void addDN2ID(ImportIDSet record, Integer indexID)
-        throws DirectoryException
+    private void addDN2ID(int indexID, ImportIDSet record) throws DirectoryException
     {
       DNState dnState;
       if (!dnStateMap.containsKey(indexID))
@@ -2635,32 +2624,32 @@
       deleteKeyCount = 0;
     }
 
-    private void insertOrDeleteKey(IndexOutputBuffer indexBuffer, int i)
+    private void insertOrDeleteKey(IndexOutputBuffer indexBuffer, int position)
     {
-      if (indexBuffer.isInsertRecord(i))
+      if (indexBuffer.isInsertRecord(position))
       {
-        indexBuffer.writeID(insertByteStream, i);
+        indexBuffer.writeEntryID(insertByteStream, position);
         insertKeyCount++;
       }
       else
       {
-        indexBuffer.writeID(deleteByteStream, i);
+        indexBuffer.writeEntryID(deleteByteStream, position);
         deleteKeyCount++;
       }
     }
 
-    private void insertOrDeleteKeyCheckEntryLimit(IndexOutputBuffer indexBuffer, int i)
+    private void insertOrDeleteKeyCheckEntryLimit(IndexOutputBuffer indexBuffer, int position)
     {
-      if (indexBuffer.isInsertRecord(i))
+      if (indexBuffer.isInsertRecord(position))
       {
         if (insertKeyCount++ <= indexMgr.getLimit())
         {
-          indexBuffer.writeID(insertByteStream, i);
+          indexBuffer.writeEntryID(insertByteStream, position);
         }
       }
       else
       {
-        indexBuffer.writeID(deleteByteStream, i);
+        indexBuffer.writeEntryID(deleteByteStream, position);
         deleteKeyCount++;
       }
     }

--
Gitblit v1.10.0