From 7ea8ac48d10e033ba0d6ca0ec0d66ace144062a0 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 07 Jul 2014 15:29:48 +0000
Subject: [PATCH] OPENDJ-1453 Replica offline messages should be synced with updates

---
 opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java b/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java
index 052b0d0..deacf2a 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java
@@ -33,9 +33,9 @@
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Set;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ConcurrentSkipListMap;
 import java.util.concurrent.ConcurrentSkipListSet;
@@ -378,8 +378,7 @@
     // initialize the DB cursor and the last seen updates
     // to ensure the medium consistency CSN can move forward
     final ReplicationDomainDB domainDB = changelogDB.getReplicationDomainDB();
-    for (Entry<DN, List<Integer>> entry
-        : changelogState.getDomainToServerIds().entrySet())
+    for (Entry<DN, Set<Integer>> entry : changelogState.getDomainToServerIds().entrySet())
     {
       final DN baseDN = entry.getKey();
       if (!isECLEnabledDomain(baseDN))
@@ -422,12 +421,10 @@
       nextChangeForInsertDBCursor.next();
     }
 
-    for (Entry<DN, List<CSN>> entry : changelogState.getOfflineReplicas()
-        .entrySet())
+    final MultiDomainServerState offlineReplicas = changelogState.getOfflineReplicas();
+    for (DN baseDN : offlineReplicas)
     {
-      final DN baseDN = entry.getKey();
-      final List<CSN> offlineCSNs = entry.getValue();
-      for (CSN offlineCSN : offlineCSNs)
+      for (CSN offlineCSN : offlineReplicas.getServerState(baseDN))
       {
         if (isECLEnabledDomain(baseDN))
         {

--
Gitblit v1.10.0