From 50b5f3c4c4d80598ea5761b987b183e3202cc47f Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Mon, 07 Apr 2008 13:51:03 +0000
Subject: [PATCH] Import performance commits:

---
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/LongImportIDSet.java |   33 ++++++++++++++++++++++++++++-----
 1 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/LongImportIDSet.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/LongImportIDSet.java
index d06bccb..cc4269b 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/LongImportIDSet.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/LongImportIDSet.java
@@ -58,6 +58,11 @@
   //Boolean to keep track if the instance is defined or not.
   boolean isDefined=true;
 
+
+  //Size of the undefines.
+  private long undefinedSize = 0;
+
+
   static {
     if(RuntimeInformation.is64Bit()) {
       LONGS_OVERHEAD = LONGS_OVERHEAD_64;
@@ -99,6 +104,12 @@
     isDefined = false;
   }
 
+   /**
+   * {@inheritDoc}
+   */
+  public long getUndefinedSize() {
+    return undefinedSize;
+  }
 
   /**
    * {@inheritDoc}
@@ -115,7 +126,8 @@
   /**
    * {@inheritDoc}
    */
-  public boolean merge(byte[] DBbytes, ImportIDSet importIdSet, int limit) {
+  public boolean merge(byte[] DBbytes, ImportIDSet importIdSet,
+                       int limit, boolean maintainCount) {
     boolean incrLimitCount=false;
     boolean dbUndefined = ((DBbytes[0] & 0x80) == 0x80);
 
@@ -142,13 +154,21 @@
   /**
    * {@inheritDoc}
    */
-  public void addEntryID(EntryID entryID, int limit) {
+  public void addEntryID(EntryID entryID, int limit, boolean maintainCount) {
     if(!isDefined()) {
-       return;
+      if(maintainCount)  {
+        undefinedSize++;
+      }
+      return;
     }
     if(isDefined() && ((count + 1) > limit)) {
       isDefined = false;
       array = null;
+      if(maintainCount)  {
+        undefinedSize = count + 1;
+      } else {
+        undefinedSize = Long.MAX_VALUE;
+      }
       count = 0;
     } else {
        add(entryID.longValue());
@@ -160,8 +180,11 @@
    * {@inheritDoc}
    */
   public byte[] toDatabase() {
-    if (isDefined()) return encode(null);
-    else return JebFormat.entryIDUndefinedSizeToDatabase(Long.MAX_VALUE);
+    if (isDefined()) {
+      return encode(null);
+    } else {
+      return JebFormat.entryIDUndefinedSizeToDatabase(undefinedSize);
+    }
   }
 
   /**

--
Gitblit v1.10.0