From f9fd01abc48e20d136192a5c45e215910d3ba320 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 04 Oct 2013 09:31:56 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB

---
 opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java |   22 +++++-----------------
 1 files changed, 5 insertions(+), 17 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
index 5961572..ebe4ada 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -30,7 +30,6 @@
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.*;
-import java.util.Map.Entry;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.TimeUnit;
@@ -1721,17 +1720,7 @@
    */
   public ServerState getLatestServerState()
   {
-    return toServerState(changelogDB.getDomainNewestCSNs(baseDN).values());
-  }
-
-  private ServerState toServerState(Collection<CSN> csns)
-  {
-    ServerState serverState = new ServerState();
-    for (CSN csn : csns)
-    {
-      serverState.update(csn);
-    }
-    return serverState;
+    return changelogDB.getDomainNewestCSNs(baseDN);
   }
 
   /**
@@ -2646,7 +2635,7 @@
    */
   public ServerState getStartState()
   {
-    return toServerState(changelogDB.getDomainOldestCSNs(baseDN).values());
+    return changelogDB.getDomainOldestCSNs(baseDN);
   }
 
   /**
@@ -2662,12 +2651,11 @@
   {
     CSN eligibleCSN = null;
 
-    for (Entry<Integer, CSN> entry :
-      changelogDB.getDomainNewestCSNs(baseDN).entrySet())
+    final ServerState newestCSNs = changelogDB.getDomainNewestCSNs(baseDN);
+    for (final int serverId : newestCSNs)
     {
       // Consider this producer (DS/db).
-      final int serverId = entry.getKey();
-      final CSN changelogNewestCSN = entry.getValue();
+      final CSN changelogNewestCSN = newestCSNs.getCSN(serverId);
 
       // Should it be considered for eligibility ?
       CSN heartbeatLastCSN =

--
Gitblit v1.10.0