From ff24232c35db8b684d5ba165eba219d855b02666 Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Wed, 16 Sep 2009 21:11:23 +0000
Subject: [PATCH] Correct importing LDIF with large numbers of subtrees using small JVM heaps (128MB-512MB). Also, turn cleaner thread off.
---
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/ImportIDSet.java | 35 +++++++++++++++++++++++++++++++++--
1 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/ImportIDSet.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/ImportIDSet.java
index 6814363..6e26ed2 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/ImportIDSet.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/ImportIDSet.java
@@ -56,8 +56,8 @@
//Key related to an ID set.
private byte[] key;
- private int limit;
- private boolean doCount;
+ private int limit = -1;
+ private boolean doCount = false;
/**
@@ -75,6 +75,32 @@
this.doCount = doCount;
}
+ /**
+ * Create an empty import instance.
+ */
+ public ImportIDSet()
+ {
+
+ }
+
+ /**
+ * Clear the set so it can be reused again. The boolean indexParam specifies
+ * if the index parameters should be cleared also.
+ *
+ * @param indexParams <CODE>true</CODE> if the index parameters should be
+ * cleared.
+ */
+ public void clear(boolean indexParams)
+ {
+ undefinedSize = 0;
+ isDefined = true;
+ count = 0;
+ if(indexParams)
+ {
+ doCount = false;
+ limit = -1;
+ }
+ }
/**
* Return if an import ID set is defined or not.
@@ -115,6 +141,11 @@
public void
merge(ImportIDSet importIDSet)
{
+ if(limit == -1)
+ {
+ doCount = importIDSet.doCount;
+ limit = importIDSet.limit;
+ }
if(!isDefined() && !importIDSet.isDefined()) //both undefined
{
if(doCount)
--
Gitblit v1.10.0