From 06114fba6a18eab64d6a6371a1c3966f387aff5a Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 17 Sep 2013 08:46:28 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB
---
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java | 11 ++++++-----
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbIterator.java | 11 +++++++----
2 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
index dd878d9..aa4c1a7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
@@ -31,7 +31,6 @@
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
-import org.opends.messages.Message;
import org.opends.messages.MessageBuilder;
import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.replication.server.changelog.api.CNIndexRecord;
@@ -398,10 +397,12 @@
// We could not move the cursor to the expected startChangeNumber
if (localCursor.getSearchKeyRange(key, entry, DEFAULT) != SUCCESS)
{
- // We could not even move the cursor close to it => failure
- throw new ChangelogException(
- Message.raw("ChangeLog Change Number " + startChangeNumber
- + " is not available"));
+ // We could not even move the cursor close to it
+ // => return an empty cursor
+ isClosed = true;
+ txn = null;
+ cursor = null;
+ return;
}
if (localCursor.getPrev(key, entry, LockMode.DEFAULT) != SUCCESS)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbIterator.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbIterator.java
index ab7a5e7..f1ace74 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbIterator.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbIterator.java
@@ -29,8 +29,10 @@
import org.opends.messages.Message;
import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.replication.server.changelog.api.*;
-import org.opends.server.replication.server.changelog.je.DraftCNDB.*;
+import org.opends.server.replication.server.changelog.api.CNIndexRecord;
+import org.opends.server.replication.server.changelog.api.ChangeNumberIndexDBCursor;
+import org.opends.server.replication.server.changelog.api.ChangelogException;
+import org.opends.server.replication.server.changelog.je.DraftCNDB.DraftCNDBCursor;
import org.opends.server.types.DebugLogLevel;
import static org.opends.server.loggers.debug.DebugLogger.*;
@@ -59,9 +61,10 @@
throws ChangelogException
{
draftCNDbCursor = db.openReadCursor(startChangeNumber);
- if (draftCNDbCursor == null)
+ if (draftCNDbCursor.currentRecord() == null)
{
- throw new ChangelogException(Message.raw("no new change"));
+ throw new ChangelogException(Message.raw("Change Number "
+ + startChangeNumber + " is not available in the Changelog"));
}
}
--
Gitblit v1.10.0