From 84cf626ebcae1b535abe9efd3eed5cdf78bdd319 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 05 Sep 2013 07:51:54 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB

---
 opends/src/server/org/opends/server/replication/server/ReplicationServer.java |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 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 90bb23f..11f6507 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -52,6 +52,7 @@
 import org.opends.server.replication.common.*;
 import org.opends.server.replication.plugin.MultimasterReplication;
 import org.opends.server.replication.protocol.*;
+import org.opends.server.replication.server.changelog.api.CNIndexData;
 import org.opends.server.replication.server.changelog.api.ChangeNumberIndexDB;
 import org.opends.server.replication.server.changelog.api.ChangelogException;
 import org.opends.server.replication.server.changelog.je.DbHandler;
@@ -1699,37 +1700,36 @@
      *     (this diff is done domain by domain)
      */
 
-    long lastChangeNumber;
-    boolean dbEmpty = false;
     final ChangeNumberIndexDB cnIndexDB = getChangeNumberIndexDB();
-
     try
     {
-      long firstChangeNumber = cnIndexDB.getFirstChangeNumber();
+      boolean dbEmpty = true;
+      long firstChangeNumber = 0;
+      long lastChangeNumber = 0;
+
+      final CNIndexData firstCNData = cnIndexDB.getFirstCNIndexData();
+      final CNIndexData lastCNData = cnIndexDB.getLastCNIndexData();
+
       Map<String, ServerState> domainsServerStateForLastCN = null;
       CSN csnForLastCN = null;
       String domainForLastCN = null;
-      if (firstChangeNumber < 1)
+      if (firstCNData != null)
       {
-        dbEmpty = true;
-        firstChangeNumber = 0;
-        lastChangeNumber = 0;
-      }
-      else
-      {
-        lastChangeNumber = cnIndexDB.getLastChangeNumber();
+        dbEmpty = false;
+        firstChangeNumber = firstCNData.getChangeNumber();
+        lastChangeNumber = lastCNData.getChangeNumber();
 
         // Get the generalized state associated with the current last change
         // number and initializes from it the startStates table
-        String lastCNGenState = cnIndexDB.getPreviousCookie(lastChangeNumber);
+        String lastCNGenState = lastCNData.getPreviousCookie();
         if (lastCNGenState != null && lastCNGenState.length() > 0)
         {
           domainsServerStateForLastCN = MultiDomainServerState
               .splitGenStateToServerStates(lastCNGenState);
         }
 
-        csnForLastCN = cnIndexDB.getCSN(lastChangeNumber);
-        domainForLastCN = cnIndexDB.getBaseDN(lastChangeNumber);
+        csnForLastCN = lastCNData.getCSN();
+        domainForLastCN = lastCNData.getBaseDN();
       }
 
       long newestDate = 0;

--
Gitblit v1.10.0