From abd513b18b6271c54c01c42d44453f9c5f241599 Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Wed, 30 Apr 2008 18:31:16 +0000
Subject: [PATCH] Performance changes to import. Mostly for issue 3161.

---
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/IntegerImportIDSet.java |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/IntegerImportIDSet.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/IntegerImportIDSet.java
index 8ddc315..f553d07 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/IntegerImportIDSet.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/IntegerImportIDSet.java
@@ -74,6 +74,26 @@
     count=1;
   }
 
+  /**
+   * {@inheritDoc}
+   */
+  public void setEntryID(EntryID id) {
+    if(array == null) {
+      this.array = new int[1];
+    }
+    reset();
+    this.array[0] = (int) id.longValue();
+    count=1;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  public void reset() {
+    count = 0;
+    isDefined = true;
+    undefinedSize = 0;
+  }
 
   /**
    * {@inheritDoc}
@@ -109,6 +129,35 @@
     }
   }
 
+  /**
+   * {@inheritDoc}
+   */
+  public void
+  merge(ImportIDSet importIDSet, int limit, boolean maintainCount) {
+    if(!isDefined()) {
+      if(maintainCount)  {
+        if(importIDSet.isDefined()) {
+          undefinedSize += importIDSet.size();
+        } else {
+          undefinedSize += importIDSet.getUndefinedSize();
+        }
+      }
+      return;
+    }
+    if(isDefined() && ((count + importIDSet.size()) > limit)) {
+      isDefined = false;
+      if(maintainCount)  {
+        undefinedSize = size() + importIDSet.size();
+      } else {
+        undefinedSize = Long.MAX_VALUE;
+      }
+      array = null;
+      count = 0;
+    } else {
+      addAll((IntegerImportIDSet) importIDSet);
+    }
+  }
+
 
   /**
    * {@inheritDoc}

--
Gitblit v1.10.0