From b182ea128bb2c9e70bdfb41ac056efef4ea70430 Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Thu, 22 Mar 2007 16:59:32 +0000
Subject: [PATCH] Fix for issue 1370 : tests for resynchronization after import or restore are failing This was happening because in some cases the Changelog server was failing to re-send the changes to the LDAP servers.

---
 opends/src/server/org/opends/server/synchronization/changelog/ChangelogDB.java |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/opends/src/server/org/opends/server/synchronization/changelog/ChangelogDB.java b/opends/src/server/org/opends/server/synchronization/changelog/ChangelogDB.java
index 1f9c67f..d443ddb 100644
--- a/opends/src/server/org/opends/server/synchronization/changelog/ChangelogDB.java
+++ b/opends/src/server/org/opends/server/synchronization/changelog/ChangelogDB.java
@@ -323,7 +323,21 @@
         if (cursor.getSearchKey(key, data, LockMode.DEFAULT) !=
           OperationStatus.SUCCESS)
         {
-          throw new Exception("ChangeNumber not available");
+          if (cursor.getSearchKeyRange(key, data, LockMode.DEFAULT) !=
+            OperationStatus.SUCCESS)
+          {
+              throw new Exception("ChangeNumber not available");
+          }
+          else
+          {
+            DatabaseEntry key = new DatabaseEntry();
+            DatabaseEntry data = new DatabaseEntry();
+            if (cursor.getPrev(key, data, LockMode.DEFAULT) !=
+             OperationStatus.SUCCESS)
+           {
+             cursor = db.openCursor(txn, null);
+           }
+          }
         }
       }
     }

--
Gitblit v1.10.0