From e7dcb1cb66a87ce2b0144cf9862b4296ea7a715c Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Tue, 29 Sep 2009 08:32:17 +0000
Subject: [PATCH] #4250 Entry not replicated after initializations / not systematic

---
 opendj-sdk/opends/src/server/org/opends/server/replication/server/DataServerHandler.java |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/DataServerHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/DataServerHandler.java
index 65cfa2c..2c12cc5 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/DataServerHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/DataServerHandler.java
@@ -59,6 +59,10 @@
  */
 public class DataServerHandler extends ServerHandler
 {
+  // Temporay generationId received in handshake/phase1,
+  // and used after handshake/phase2
+  long tmpGenerationId;
+
   // Status of this DS (only used if this server handler represents a DS)
   private ServerStatus status = ServerStatus.INVALID_STATUS;
 
@@ -409,7 +413,7 @@
   public boolean processStartFromRemote(ServerStartMsg serverStartMsg)
   throws DirectoryException
   {
-    generationId = serverStartMsg.getGenerationId();
+    tmpGenerationId = serverStartMsg.getGenerationId();
     protocolVersion = ProtocolVersion.minWithCurrent(
         serverStartMsg.getVersion());
     serverId = serverStartMsg.getServerId();
@@ -474,6 +478,9 @@
       boolean sessionInitiatorSSLEncryption =
         processStartFromRemote(inServerStartMsg);
 
+      // lock with no timeout
+      lockDomain(false);
+
       localGenerationId = replicationServerDomain.getGenerationId();
       oldGenerationId = localGenerationId;
 
@@ -490,9 +497,6 @@
         return;
       }
 
-      // lock with no timeout
-      lockDomain(false);
-
       //
       ReplServerStartMsg outReplServerStartMsg = null;
       try
@@ -652,6 +656,7 @@
      *   (unsaved yet on disk . will be set with the 1rst change
      * received)
      */
+    generationId = tmpGenerationId;
     if (localGenerationId > 0)
     {
       if (generationId != localGenerationId)

--
Gitblit v1.10.0