From 35e456ae00d596ac65b2fabf299ff0a49937fd96 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 03 Aug 2016 09:50:12 +0000
Subject: [PATCH] OPENDJ-3133 dsreplication status reports M.C. (Missing Changes) when none exist

---
 opendj-server-legacy/src/main/java/org/opends/server/replication/server/MessageHandler.java |   10 +++++++---
 1 files changed, 7 insertions(+), 3 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 ee0f711..61ac4b4 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
@@ -23,9 +23,10 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ResultCode;
-import org.opends.server.api.MonitorData;
 import org.forgerock.opendj.server.config.server.MonitorProviderCfg;
+import org.opends.server.api.MonitorData;
 import org.opends.server.api.MonitorProvider;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.replication.common.CSN;
@@ -33,7 +34,6 @@
 import org.opends.server.replication.protocol.UpdateMsg;
 import org.opends.server.replication.server.changelog.api.ChangelogException;
 import org.opends.server.replication.server.changelog.api.DBCursor;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.InitializationException;
 
@@ -582,7 +582,11 @@
    */
   boolean updateServerState(UpdateMsg msg)
   {
-    return serverState.update(msg.getCSN());
+    return msg.contributesToDomainState()
+        ? serverState.update(msg.getCSN())
+        // Do not update the server state with an offline CSN,
+        // to avoid missing-changes being incorrectly reported
+        : !serverState.cover(msg.getCSN());
   }
 
   /**

--
Gitblit v1.10.0