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/pluggable/IndexInputBuffer.java |   35 ++++++++++++-----------------------
 1 files changed, 12 insertions(+), 23 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexInputBuffer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexInputBuffer.java
index 1edd331..65033ff 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexInputBuffer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexInputBuffer.java
@@ -27,6 +27,7 @@
 package org.opends.server.backends.pluggable;
 
 import static org.opends.messages.JebMessages.*;
+import static org.opends.server.backends.pluggable.IndexOutputBuffer.*;
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
@@ -35,8 +36,6 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.backends.pluggable.Importer.IndexManager;
 
-import com.sleepycat.util.PackedInteger;
-
 /**
  * The buffer class is used to process a buffer from the temporary index files
  * during phase 2 processing.
@@ -208,11 +207,7 @@
     indexID = getInt();
 
     ensureData(20);
-    byte[] ba = cache.array();
-    int p = cache.position();
-    int len = PackedInteger.getReadIntLength(ba, p);
-    int keyLen = PackedInteger.readInt(ba, p);
-    cache.position(p + len);
+    int keyLen = getInt();
     if (keyLen > keyBuf.capacity())
     {
       keyBuf = ByteBuffer.allocate(keyLen);
@@ -227,10 +222,16 @@
 
   private int getInt() throws IOException
   {
-    ensureData(4);
+    ensureData(INT_SIZE);
     return cache.getInt();
   }
 
+  private long getLong() throws IOException
+  {
+    ensureData(LONG_SIZE);
+    return cache.getLong();
+  }
+
   /**
    * Reads the next ID set from the record and merges it with the provided ID
    * set.
@@ -248,27 +249,15 @@
     }
 
     ensureData(20);
-    int p = cache.position();
-    byte[] ba = cache.array();
-    int len = PackedInteger.getReadIntLength(ba, p);
-    int keyCount = PackedInteger.readInt(ba, p);
-    p += len;
-    cache.position(p);
+    int keyCount = getInt();
     for (int k = 0; k < keyCount; k++)
     {
-      if (ensureData(9))
-      {
-        p = cache.position();
-      }
-      len = PackedInteger.getReadLongLength(ba, p);
-      long l = PackedInteger.readLong(ba, p);
-      p += len;
-      cache.position(p);
+      long entryID = getLong();
 
       // idSet will be null if skipping.
       if (idSet != null)
       {
-        idSet.addEntryID(l);
+        idSet.addEntryID(entryID);
       }
     }
 

--
Gitblit v1.10.0