From 75ef5642f28b617a1d5ff693a4c4dc1355212c8d Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Tue, 02 Dec 2014 16:35:47 +0000
Subject: [PATCH] OPENDJ-1611 Check serverState before returning a message

---
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/MessageHandler.java          |   13 +++++++++----
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerDomain.java |    9 +--------
 2 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/MessageHandler.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/MessageHandler.java
index 1b227cf..4c5b00a 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/MessageHandler.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/MessageHandler.java
@@ -330,8 +330,10 @@
                 following = true;
                 lateQueue.clear();
                 msgQueue.consumeUpTo(msg);
-                updateServerState(msg);
-                return msg;
+                if (updateServerState(msg))
+                {
+                  return msg;
+                }
               }
             }
           }
@@ -344,8 +346,11 @@
           {
             msg = lateQueue.removeFirst();
           }
-          updateServerState(msg);
-          return msg;
+          if (updateServerState(msg))
+          {
+            return msg;
+          }
+          continue;
         }
       }
 
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerDomain.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
index 440ddb4..208fa2a 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -35,7 +35,6 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.Set;
 import java.util.Timer;
 import java.util.TimerTask;
 import java.util.concurrent.ConcurrentHashMap;
@@ -1277,13 +1276,7 @@
   public UpdateMsg take(ServerHandler sHandler)
   {
     // Next message can only be taken from connected DSs
-    final Set<Integer> connectedReplicaIds = new HashSet<Integer>(getConnectedDSs().keySet());
-    if (sHandler.isDataServer())
-    {
-      // Prevents sending to a DS its own messages
-      connectedReplicaIds.remove(sHandler.getServerId());
-    }
-    return sHandler.take(connectedReplicaIds);
+    return sHandler.take(new HashSet<Integer>(getConnectedDSs().keySet()));
   }
 
   /**

--
Gitblit v1.10.0