From 55e5dd13a9d3d646a3a426cf4f0790f0cded735e Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 30 Sep 2013 14:48:34 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB

---
 opends/src/server/org/opends/server/replication/server/ReplicationServer.java |   31 +++----------------------------
 1 files changed, 3 insertions(+), 28 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
index 4dc9c43..4cc7ad4 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -150,13 +150,6 @@
    */
   private ChangeNumberIndexDB cnIndexDB;
 
-  /**
-   * The last value generated of the change number.
-   * <p>
-   * Guarded by cnIndexDBLock
-   **/
-  private long lastGeneratedChangeNumber = 0;
-
   /** Used for protecting {@link ChangeNumberIndexDB} related state. */
   private final Object cnIndexDBLock = new Object();
 
@@ -1307,7 +1300,6 @@
 
         shutdownCNIndexDB();
 
-        lastGeneratedChangeNumber = 0;
         cnIndexDB = null;
       }
     }
@@ -1528,11 +1520,6 @@
         if (cnIndexDB == null)
         {
           cnIndexDB = this.changelogDB.newChangeNumberIndexDB();
-          final CNIndexRecord lastCNRecord = cnIndexDB.getLastRecord();
-          // initialization of the lastGeneratedChangeNumber from the DB content
-          // if DB is empty => last record does not exist => default to 0
-          lastGeneratedChangeNumber =
-              (lastCNRecord != null) ? lastCNRecord.getChangeNumber() : 0;
         }
         return cnIndexDB;
       }
@@ -1547,19 +1534,6 @@
   }
 
   /**
-   * Generate a new change number.
-   *
-   * @return The generated change number
-   */
-  public long getNewChangeNumber()
-  {
-    synchronized (cnIndexDBLock)
-    {
-      return ++lastGeneratedChangeNumber;
-    }
-  }
-
-  /**
    * Get first and last change number.
    *
    * @param crossDomainEligibleCSN
@@ -1683,8 +1657,9 @@
       {
         // The database was empty, just keep increasing numbers since last time
         // we generated one change number.
-        firstChangeNumber += lastGeneratedChangeNumber;
-        lastChangeNumber += lastGeneratedChangeNumber;
+        long lastGeneratedCN = this.cnIndexDB.getLastGeneratedChangeNumber();
+        firstChangeNumber += lastGeneratedCN;
+        lastChangeNumber += lastGeneratedCN;
       }
       return new long[] { firstChangeNumber, lastChangeNumber };
     }

--
Gitblit v1.10.0