From f8ef0eed366445c5a341dbcc7882a7104c1cac1b Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Thu, 26 Jul 2007 16:31:34 +0000
Subject: [PATCH] This fixes issue 1971 and allows partial non-append imports of a backend:
---
opends/src/server/org/opends/server/backends/jeb/IndexRebuildThread.java | 84 ++++++++++++++++++++++++++++-------------
1 files changed, 57 insertions(+), 27 deletions(-)
diff --git a/opends/src/server/org/opends/server/backends/jeb/IndexRebuildThread.java b/opends/src/server/org/opends/server/backends/jeb/IndexRebuildThread.java
index 02bbcbc..2937a90 100644
--- a/opends/src/server/org/opends/server/backends/jeb/IndexRebuildThread.java
+++ b/opends/src/server/org/opends/server/backends/jeb/IndexRebuildThread.java
@@ -76,11 +76,6 @@
Index index = null;
/**
- * Name of the indexType being rebuilt.
- */
- String indexName = null;
-
- /**
* The ID2ENTRY database.
*/
ID2Entry id2entry = null;
@@ -128,12 +123,11 @@
*/
IndexRebuildThread(EntryContainer ec, IndexType index)
{
- super("Index Rebuild Thread " + ec.getContainerName() + "_" +
+ super("Index Rebuild Thread " + ec.getDatabasePrefix() + "_" +
index.toString());
this.ec = ec;
this.indexType = index;
this.id2entry = ec.getID2Entry();
- this.indexName = ec.getContainerName() + "_" + index.toString();
}
/**
@@ -149,7 +143,6 @@
this.indexType = IndexType.INDEX;
this.index = index;
this.id2entry = ec.getID2Entry();
- this.indexName = ec.getContainerName() + "_" + index.toString();
}
/**
@@ -165,7 +158,6 @@
this.indexType = IndexType.ATTRIBUTEINDEX;
this.attrIndex = index;
this.id2entry = ec.getID2Entry();
- this.indexName = ec.getContainerName() + "_" + index.toString();
}
/**
@@ -213,25 +205,25 @@
switch(indexType)
{
case DN2ID :
- ec.clearDatabase(null, ec.getDN2ID());
+ ec.clearDatabase(ec.getDN2ID());
break;
case DN2URI :
- ec.clearDatabase(null, ec.getDN2URI());
+ ec.clearDatabase(ec.getDN2URI());
break;
case ID2CHILDREN :
- ec.clearDatabase(null, ec.getID2Children());
+ ec.clearDatabase(ec.getID2Children());
ec.getID2Children().setRebuildStatus(true);
break;
case ID2SUBTREE :
- ec.clearDatabase(null, ec.getID2Subtree());
+ ec.clearDatabase(ec.getID2Subtree());
ec.getID2Subtree().setRebuildStatus(true);
break;
case ATTRIBUTEINDEX :
- ec.clearAttributeIndex(null, attrIndex);
+ ec.clearAttributeIndex(attrIndex);
attrIndex.setRebuildStatus(true);
break;
case INDEX :
- ec.clearDatabase(null, index);
+ ec.clearDatabase(index);
index.setRebuildStatus(true);
}
}
@@ -278,12 +270,6 @@
try
{
totalEntries = getTotalEntries();
- if(debugEnabled())
- {
- TRACER.debugInfo("Initiating rebuild of the %s indexType/database",
- indexName);
- TRACER.debugVerbose("%d entries will be rebuilt", totalEntries);
- }
switch(indexType)
{
@@ -329,6 +315,14 @@
{
DN2ID dn2id = ec.getDN2ID();
+ if(debugEnabled())
+ {
+ TRACER.debugInfo("Initiating rebuild of the %s database",
+ dn2id.getName());
+ TRACER.debugVerbose("%d entries will be rebuilt", totalEntries);
+ }
+
+
//Iterate through the id2entry database and insert associated dn2id
//records.
Cursor cursor = id2entry.openCursor(null, null);
@@ -379,7 +373,7 @@
skippedEntries++;
int msgID = MSGID_JEB_REBUILD_INSERT_ENTRY_FAILED;
- String message = getMessage(msgID, indexName,
+ String message = getMessage(msgID, dn2id.getName(),
stackTraceToSingleLineString(e));
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.MILD_ERROR,
message, msgID);
@@ -406,6 +400,14 @@
{
DN2URI dn2uri = ec.getDN2URI();
+ if(debugEnabled())
+ {
+ TRACER.debugInfo("Initiating rebuild of the %s database",
+ dn2uri.getName());
+ TRACER.debugVerbose("%d entries will be rebuilt", totalEntries);
+ }
+
+
//Iterate through the id2entry database and insert associated dn2uri
//records.
Cursor cursor = id2entry.openCursor(null, null);
@@ -457,7 +459,7 @@
skippedEntries++;
int msgID = MSGID_JEB_REBUILD_INSERT_ENTRY_FAILED;
- String message = getMessage(msgID, indexName,
+ String message = getMessage(msgID, dn2uri.getName(),
stackTraceToSingleLineString(e));
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.MILD_ERROR,
message, msgID);
@@ -485,6 +487,14 @@
{
Index id2children = ec.getID2Children();
+ if(debugEnabled())
+ {
+ TRACER.debugInfo("Initiating rebuild of the %s index",
+ id2children.getName());
+ TRACER.debugVerbose("%d entries will be rebuilt", totalEntries);
+ }
+
+
DN2ID dn2id = ec.getDN2ID();
DN2URI dn2uri = ec.getDN2URI();
@@ -559,7 +569,7 @@
skippedEntries++;
int msgID = MSGID_JEB_REBUILD_INSERT_ENTRY_FAILED;
- String message = getMessage(msgID, indexName,
+ String message = getMessage(msgID, id2children.getName(),
stackTraceToSingleLineString(e));
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.MILD_ERROR,
message, msgID);
@@ -589,6 +599,14 @@
{
Index id2subtree = ec.getID2Subtree();
+ if(debugEnabled())
+ {
+ TRACER.debugInfo("Initiating rebuild of the %s index",
+ id2subtree.getName());
+ TRACER.debugVerbose("%d entries will be rebuilt", totalEntries);
+ }
+
+
DN2ID dn2id = ec.getDN2ID();
DN2URI dn2uri = ec.getDN2URI();
@@ -693,7 +711,7 @@
skippedEntries++;
int msgID = MSGID_JEB_REBUILD_INSERT_ENTRY_FAILED;
- String message = getMessage(msgID, indexName,
+ String message = getMessage(msgID, id2subtree.getName(),
stackTraceToSingleLineString(e));
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.MILD_ERROR,
message, msgID);
@@ -722,6 +740,12 @@
private void rebuildAttributeIndex(AttributeIndex index)
throws DatabaseException
{
+ if(debugEnabled())
+ {
+ TRACER.debugInfo("Initiating rebuild of the %s index",
+ index.getName());
+ TRACER.debugVerbose("%d entries will be rebuilt", totalEntries);
+ }
//Iterate through the id2entry database and insert associated indexType
//records.
@@ -770,7 +794,7 @@
skippedEntries++;
int msgID = MSGID_JEB_REBUILD_INSERT_ENTRY_FAILED;
- String message = getMessage(msgID, indexName,
+ String message = getMessage(msgID, index.getName(),
stackTraceToSingleLineString(e));
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.MILD_ERROR,
message, msgID);
@@ -799,6 +823,12 @@
private void rebuildAttributeIndex(Index index)
throws DatabaseException
{
+ if(debugEnabled())
+ {
+ TRACER.debugInfo("Initiating rebuild of the %s attribute index",
+ index.getName());
+ TRACER.debugVerbose("%d entries will be rebuilt", totalEntries);
+ }
//Iterate through the id2entry database and insert associated indexType
//records.
@@ -847,7 +877,7 @@
skippedEntries++;
int msgID = MSGID_JEB_REBUILD_INSERT_ENTRY_FAILED;
- String message = getMessage(msgID, indexName,
+ String message = getMessage(msgID, index.getName(),
stackTraceToSingleLineString(e));
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.MILD_ERROR,
message, msgID);
--
Gitblit v1.10.0