From 5589e80c0344aafd9db1b24ef4a820486620322a Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Thu, 13 Mar 2008 10:01:22 +0000
Subject: [PATCH] An update sent by a replicated LDAP server is tagged with a ChangeNumber generated by a ChangeNumberGenerator. One component of the ChangeNumber is a timestamp, Because we want the timestamp of the ChangeNumbers to be consistently growing across the whole topology and not only inside each server independently, the ChangeNumberGenerator must be adjusted with the timestamp of the updates received from the other servers of the topology. The code was already here but erroneously used.
---
opendj-sdk/opends/src/server/org/opends/server/replication/common/ChangeNumberGenerator.java | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/common/ChangeNumberGenerator.java b/opendj-sdk/opends/src/server/org/opends/server/replication/common/ChangeNumberGenerator.java
index 5a1e79d..b2e011e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/common/ChangeNumberGenerator.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/common/ChangeNumberGenerator.java
@@ -100,7 +100,7 @@
}
/**
- * Adjust the lastTime and seqnum of this Changenumber generator with
+ * Adjust the lastTime of this Changenumber generator with
* a ChangeNumber that we have received from another server.
* This is necessary because we need that the changenumber generated
* after processing an update received from other hosts to be larger
@@ -110,10 +110,17 @@
*/
public void adjust(ChangeNumber number)
{
+ if (number==null)
+ {
+ lastTime = TimeThread.getTime();
+ seqnum = 0;
+ return;
+ }
+
long rcvdTime = number.getTime();
/* need to synchronize with NewChangeNumber method so that we
- * protect writing of seqnum and lastTime fields
+ * protect writing lastTime fields
*/
synchronized(this)
{
--
Gitblit v1.10.0