From 53a75a371b76e4b7090dfa3c22b7d7fd3deb820a Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 23 Mar 2015 16:04:36 +0000
Subject: [PATCH] In Importer.fillIndexKey(), the VLV code does not seem to be dependent on the AttributeIndex or AttributeType. I moved this code out of this method and called it from methods at a higher level.

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/Importer.java |   28 ++++++++++++++++------------
 1 files changed, 16 insertions(+), 12 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 fe892c7..5cea395 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
@@ -1503,6 +1503,7 @@
       {
         processIndexes(suffix, entry, entryID);
       }
+      processVLVIndexes(suffix, entry, entryID);
       importCount.getAndIncrement();
     }
 
@@ -1511,8 +1512,7 @@
     {
       for (Map.Entry<AttributeType, AttributeIndex> mapEntry : suffix.getAttrIndexMap().entrySet())
       {
-        AttributeType attributeType = mapEntry.getKey();
-        fillIndexKey(suffix, mapEntry.getValue(), entry, attributeType, entryID);
+        fillIndexKey(mapEntry.getValue(), entry, mapEntry.getKey(), entryID);
       }
     }
 
@@ -1601,6 +1601,7 @@
       processDN2ID(suffix, entryDN, entryID);
       processDN2URI(suffix, null, entry);
       processIndexes(suffix, entry, entryID);
+      processVLVIndexes(suffix, entry, entryID);
       suffix.getID2Entry().put(txn, entryID, entry);
       importCount.getAndIncrement();
     }
@@ -1645,12 +1646,12 @@
         AttributeType attributeType = mapEntry.getKey();
         if (entry.hasAttribute(attributeType))
         {
-          fillIndexKey(suffix, mapEntry.getValue(), entry, attributeType, entryID);
+          fillIndexKey(mapEntry.getValue(), entry, attributeType, entryID);
         }
       }
     }
 
-    void fillIndexKey(Suffix suffix, AttributeIndex attrIndex, Entry entry, AttributeType attrType, EntryID entryID)
+    void fillIndexKey(AttributeIndex attrIndex, Entry entry, AttributeType attrType, EntryID entryID)
         throws InterruptedException, DirectoryException, StorageRuntimeException
     {
       final IndexingOptions options = attrIndex.getIndexingOptions();
@@ -1661,14 +1662,6 @@
       processAttribute(attrIndex.getOrderingIndex(), ImportIndexType.ORDERING, entry, attrType, entryID, options);
       processAttribute(attrIndex.getApproximateIndex(), ImportIndexType.APPROXIMATE, entry, attrType, entryID, options);
 
-      final EntryContainer entryContainer = suffix.getEntryContainer();
-      final IndexBuffer buffer = new IndexBuffer(entryContainer);
-      for (VLVIndex vlvIdx : entryContainer.getVLVIndexes())
-      {
-        vlvIdx.addEntry(buffer, entryID, entry);
-      }
-      buffer.flush(txn);
-
       Map<String, Collection<Index>> extensibleMap = attrIndex.getExtensibleIndexes();
       if (!extensibleMap.isEmpty())
       {
@@ -1679,6 +1672,17 @@
       }
     }
 
+    void processVLVIndexes(Suffix suffix, Entry entry, EntryID entryID) throws DirectoryException
+    {
+      final EntryContainer entryContainer = suffix.getEntryContainer();
+      final IndexBuffer buffer = new IndexBuffer(entryContainer);
+      for (VLVIndex vlvIdx : entryContainer.getVLVIndexes())
+      {
+        vlvIdx.addEntry(buffer, entryID, entry);
+      }
+      buffer.flush(txn);
+    }
+
     private void processAttributes(Collection<Index> indexes, ImportIndexType indexType, Entry entry,
         AttributeType attributeType, EntryID entryID, IndexingOptions options) throws InterruptedException
     {

--
Gitblit v1.10.0