From 9452e6e93128f70a3ca7102c695281d2ea786b9a Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Tue, 31 Mar 2009 15:50:00 +0000
Subject: [PATCH] fix for 3908 : Problems with ChangeNumber generators

---
 opends/src/server/org/opends/server/replication/common/ChangeNumberGenerator.java |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/common/ChangeNumberGenerator.java b/opends/src/server/org/opends/server/replication/common/ChangeNumberGenerator.java
index 163d266..2f02591 100644
--- a/opends/src/server/org/opends/server/replication/common/ChangeNumberGenerator.java
+++ b/opends/src/server/org/opends/server/replication/common/ChangeNumberGenerator.java
@@ -82,6 +82,8 @@
   public ChangeNumber newChangeNumber()
   {
     long curTime = TimeThread.getTime();
+    int mySeqnum;
+    long myTime;
 
     synchronized(this)
     {
@@ -90,13 +92,17 @@
         lastTime = curTime;
       }
 
-      if (seqnum++ == 0)
+      if (++seqnum <= 0)
       {
+        seqnum = 0;
         lastTime++;
       }
+      mySeqnum = seqnum;
+      myTime = lastTime;
     }
 
-    return new ChangeNumber(lastTime, seqnum, serverId);
+    return new ChangeNumber(myTime, mySeqnum, serverId);
+
   }
 
   /**

--
Gitblit v1.10.0