From 7a3e37d3c720eea18a620fe19a8e94ae299ea0a6 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Tue, 02 Dec 2014 15:56:35 +0000
Subject: [PATCH] OPENDJ-1611 Check serverState before returning a message
---
opendj-sdk/opends/src/server/org/opends/server/replication/server/MessageHandler.java | 13 +++++++++----
opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java | 9 +--------
2 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/MessageHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/MessageHandler.java
index ac7ce11..fe69dda 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/MessageHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/MessageHandler.java
@@ -329,8 +329,10 @@
following = true;
lateQueue.clear();
msgQueue.consumeUpTo(msg);
- updateServerState(msg);
- return msg;
+ if (updateServerState(msg))
+ {
+ return msg;
+ }
}
}
}
@@ -343,8 +345,11 @@
{
msg = lateQueue.removeFirst();
}
- updateServerState(msg);
- return msg;
+ if (updateServerState(msg))
+ {
+ return msg;
+ }
+ continue;
}
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
index 34727a4..31f56ed 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/opendj-sdk/opends/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;
@@ -1294,13 +1293,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