From 62e6e3728581850763dee59915e865d7368e95a1 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Mon, 22 Sep 2014 12:59:17 +0000
Subject: [PATCH] OPENDJ-1471 File based changelog : improve cursor behavior CR-3920

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

diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerHandler.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerHandler.java
index acf4fd4..b015eac 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -552,12 +552,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);
 
@@ -576,8 +575,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);
@@ -586,7 +584,7 @@
       }
 
       cnIndexDBCursor = cursor;
-      return oldestRecord.getPreviousCookie();
+      return cursor.getRecord().getPreviousCookie();
     }
     else if (startChangeNumber <= newestChangeNumber)
     {
@@ -617,6 +615,7 @@
   {
     DBCursor<ChangeNumberIndexRecord> cursor =
         cnIndexDB.getCursorFrom(startChangeNumber);
+    cursor.next();
     if (cursor.getRecord() == null)
     {
       close(cursor);

--
Gitblit v1.10.0