From 9a13d05fcb1b17c52c7b91b8445d334bce3f9e28 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 22 Nov 2013 09:24:10 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1174 Transfer responsibility for populating the ChangeNumberIndexDB to ChangelogDB

---
 opends/src/server/org/opends/server/replication/common/ServerState.java |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/common/ServerState.java b/opends/src/server/org/opends/server/replication/common/ServerState.java
index ae33dff..edfb1a9 100644
--- a/opends/src/server/org/opends/server/replication/common/ServerState.java
+++ b/opends/src/server/org/opends/server/replication/common/ServerState.java
@@ -192,6 +192,36 @@
   }
 
   /**
+   * Removes the mapping to the provided CSN if it is present in this
+   * ServerState.
+   *
+   * @param expectedCSN
+   *          the CSN to be removed
+   * @return true if the CSN could be removed, false otherwise.
+   */
+  public boolean removeCSN(CSN expectedCSN)
+  {
+    if (expectedCSN == null)
+      return false;
+
+    synchronized (serverIdToCSN)
+    {
+      for (Iterator<CSN> iter = serverIdToCSN.values().iterator();
+          iter.hasNext();)
+      {
+        final CSN csn = iter.next();
+        if (expectedCSN.equals(csn))
+        {
+          iter.remove();
+          saved = false;
+          return true;
+        }
+      }
+    }
+    return false;
+  }
+
+  /**
    * Replace the Server State with another ServerState.
    *
    * @param serverState The ServerState.

--
Gitblit v1.10.0