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