From bfef6b181cc5271d8f706c576f2bcd29d3345bf9 Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Mon, 30 May 2011 15:20:19 +0000
Subject: [PATCH] Resolve several issues with the External Changelog with regards to Cookies and changes with updates and purging. More specifically these changes are resolving the following issues : OPENDJ-57 - ECL: lastChangeNumber and firstChangeNumber reset to zero when the changelog is purged to empty OPENDJ-172 - External ChangeLog Cookie varies when searching with an empty cookie. Cookie should be reproducible. OPENDJ-173 - External ChangeLog cookies content is altered by Change purging and prevents from continuing search with a previous returned cookie.
---
opendj-sdk/opends/src/server/org/opends/server/replication/server/DbHandler.java | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/DbHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/DbHandler.java
index 43cdff7..cfb83e4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/DbHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/DbHandler.java
@@ -466,6 +466,13 @@
ChangeNumber trimDate = new ChangeNumber(latestTrimDate, 0, 0);
+ // Find the last changeNumber before the trimDate, in the Database.
+ ChangeNumber lastBeforeTrimDate = db.getPreviousChangeNumber(trimDate);
+ if (lastBeforeTrimDate != null)
+ {
+ // If we found it, we want to stop trimming when reaching it.
+ trimDate = lastBeforeTrimDate;
+ }
// In case of deadlock detection by the Database, this thread can
// by aborted by a DeadlockException. This is a transient error and
// the transaction should be attempted again.
--
Gitblit v1.10.0