From 7ddf5a923866031a7034f457715d6a5e4ecbca67 Mon Sep 17 00:00:00 2001
From: sin <sin@localhost>
Date: Sat, 31 Jan 2009 07:06:11 +0000
Subject: [PATCH] Integrating the changes related to Collation indexing support

---
 opends/src/server/org/opends/server/backends/jeb/importLDIF/WorkThread.java |   31 +++++++++++++++++++++++++++++--
 1 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/opends/src/server/org/opends/server/backends/jeb/importLDIF/WorkThread.java b/opends/src/server/org/opends/server/backends/jeb/importLDIF/WorkThread.java
index 8b8f16e..651134e 100644
--- a/opends/src/server/org/opends/server/backends/jeb/importLDIF/WorkThread.java
+++ b/opends/src/server/org/opends/server/backends/jeb/importLDIF/WorkThread.java
@@ -22,12 +22,13 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2008 Sun Microsystems, Inc.
+ *      Copyright 2008-2009 Sun Microsystems, Inc.
  */
 
 package org.opends.server.backends.jeb.importLDIF;
 
 import static org.opends.server.loggers.debug.DebugLogger.*;
+import  static org.opends.server.util.ServerConstants.*;
 import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.*;
 import org.opends.server.api.DirectoryThread;
@@ -37,7 +38,6 @@
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.TimeUnit;
 import java.util.*;
-import org.opends.server.util.*;
 
 import com.sleepycat.je.*;
 
@@ -127,6 +127,7 @@
    * to flush and exit.
    *
    */
+  @Override
   public void run()
   {
     try {
@@ -222,6 +223,12 @@
         if((index=attributeIndex.getApproximateIndex()) != null) {
           delete(index, existingEntry, entryID);
         }
+        for(Collection<Index> indexes :
+                      attributeIndex.getExtensibleIndexes().values()) {
+          for(Index extensibleIndex: indexes) {
+            delete(extensibleIndex,existingEntry,entryID);
+          }
+        }
       }
       for(VLVIndex vlvIdx : context.getEntryContainer().getVLVIndexes()) {
           vlvIdx.removeEntry(txn, entryID, existingEntry);
@@ -276,6 +283,26 @@
         for(VLVIndex vlvIdx : context.getEntryContainer().getVLVIndexes()) {
             vlvIdx.addEntry(txn, entryID, entry);
         }
+        Map<String,Collection<Index>> extensibleMap =
+                attributeIndex.getExtensibleIndexes();
+        if(!extensibleMap.isEmpty()) {
+          Collection<Index> subIndexes =
+                attributeIndex.getExtensibleIndexes().get(
+                EXTENSIBLE_INDEXER_ID_SUBSTRING);
+          if(subIndexes != null) {
+            for(Index subIndex: subIndexes) {
+              bufferMgr.insert(subIndex, entry, entryID, insertKeySet);
+            }
+          }
+          Collection<Index> sharedIndexes =
+                attributeIndex.getExtensibleIndexes().get(
+                EXTENSIBLE_INDEXER_ID_SHARED);
+          if(sharedIndexes !=null) {
+            for(Index sharedIndex:sharedIndexes) {
+              insert(sharedIndex,entry,entryID);
+            }
+          }
+        }
       }
     }
   }

--
Gitblit v1.10.0