From 7160f59040db3b159e1d73d9ba58055e8806163d Mon Sep 17 00:00:00 2001
From: Fabio Pistolesi <fabio.pistolesi@forgerock.com>
Date: Wed, 12 Oct 2016 10:30:03 +0000
Subject: [PATCH] OPENDJ-3337 Make sure ReplicationOffline messages are not repeatedly returned by cursors.

---
 opendj-server-legacy/src/main/java/org/opends/server/replication/server/MessageHandler.java |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/MessageHandler.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/MessageHandler.java
index 61ac4b4..9cfb03d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/MessageHandler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/MessageHandler.java
@@ -304,6 +304,13 @@
           synchronized (msgQueue) // TODO JNR why synchronize(msgQueue) here?
           {
             msg = lateQueue.removeFirst();
+            // By default a server is always not following. A weird case where messages not representing
+            // an operation may happen, making the late queue repeatedly fill and be emptied without ever
+            // getting the server out of state "not following".
+            if (lateQueue.isEmpty() && msgQueue.isEmpty())
+            {
+              following = true;
+            }
           }
           if (updateServerState(msg))
           {

--
Gitblit v1.10.0