From 8480c9ba20d5966c24630233e0384ab9ca55ab03 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Wed, 02 Jul 2014 08:18:44 +0000
Subject: [PATCH] OPENDJ-1471 File based changelog : improve cursor behavior CR-3920

---
 opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
index ed15dd4..a4591c6 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -548,12 +548,11 @@
     // Read the CNIndexDB to see whether it contains startChangeNumber
     DBCursor<ChangeNumberIndexRecord> cursor =
         cnIndexDB.getCursorFrom(startChangeNumber);
-    final ChangeNumberIndexRecord startRecord = cursor.getRecord();
-    if (startRecord != null)
+    if (cursor.next())
     {
       // found the provided startChangeNumber, let's return it
       cnIndexDBCursor = cursor;
-      return startRecord.getPreviousCookie();
+      return cursor.getRecord().getPreviousCookie();
     }
     close(cursor);
 
@@ -572,8 +571,7 @@
     if (startChangeNumber < oldestChangeNumber)
     {
       cursor = cnIndexDB.getCursorFrom(oldestChangeNumber);
-      final ChangeNumberIndexRecord oldestRecord = cursor.getRecord();
-      if (oldestRecord == null)
+      if (!cursor.next())
       {
         // This should not happen
         close(cursor);
@@ -582,7 +580,7 @@
       }
 
       cnIndexDBCursor = cursor;
-      return oldestRecord.getPreviousCookie();
+      return cursor.getRecord().getPreviousCookie();
     }
     else if (startChangeNumber <= newestChangeNumber)
     {
@@ -613,6 +611,7 @@
   {
     DBCursor<ChangeNumberIndexRecord> cursor =
         cnIndexDB.getCursorFrom(startChangeNumber);
+    cursor.next();
     if (cursor.getRecord() == null)
     {
       close(cursor);

--
Gitblit v1.10.0