From 41f0cb7c09c0bcd82c9c828c84a48fd72fb36fbc Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 06 Aug 2013 10:02:00 +0000
Subject: [PATCH] ECLServerHandler.java: Extracted methods storeNewChange() to remove duplication and areSameChange() to ease readability.
---
opends/src/server/org/opends/server/replication/server/ECLServerHandler.java | 73 +++++++++++++++---------------------
1 files changed, 30 insertions(+), 43 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java b/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
index 411a28e..fabe4da 100644
--- a/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -1313,10 +1313,6 @@
ChangeNumber cnFromDraftCNDb = draftCNDbIter.getChangeNumber();
String dnFromDraftCNDb = draftCNDbIter.getBaseDN();
- // are replogcn and DraftCNcn should be the same change ?
- int areCNEqual = cnFromChangelogDb.compareTo(cnFromDraftCNDb);
- int areDNEqual = dnFromChangelogDb.compareTo(dnFromDraftCNDb);
-
if (debugEnabled())
TRACER.debugInfo("getNextECLUpdate generating draftCN "
+ " comparing the 2 db DNs :"
@@ -1324,7 +1320,9 @@
+ " timestamps:" + new Date(cnFromChangelogDb.getTime())
+ " ?older" + new Date(cnFromDraftCNDb.getTime()));
- if ((areDNEqual==0) && (areCNEqual==0))
+ // should replogcn and DraftCN be the same change ?
+ if (areSameChange(cnFromChangelogDb, dnFromChangelogDb,
+ cnFromDraftCNDb, dnFromDraftCNDb))
{
// same domain and same CN => same change
@@ -1334,9 +1332,7 @@
+ " assigning draftCN=" + draftCNDbIter.getDraftCN()
+ " to change=" + oldestChange);
- oldestChange.setDraftChangeNumber(
- draftCNDbIter.getDraftCN());
-
+ oldestChange.setDraftChangeNumber(draftCNDbIter.getDraftCN());
break;
}
else
@@ -1369,19 +1365,7 @@
if (isEndOfDraftCNReached)
{
// we are at the end of the DraftCNdb in the append mode
-
- // generate a new draftCN and assign to this change
- oldestChange.setDraftChangeNumber(
- replicationServer.getNewDraftCN());
-
- // store in DraftCNdb the pair
- // (draftCN_of_the_cur_change, state_before_this_change)
- draftCNDb.add(
- oldestChange.getDraftChangeNumber(),
- previousCookie.toString(),
- oldestChange.getBaseDN(),
- oldestChange.getUpdateMsg().getChangeNumber());
-
+ storeNewChange(draftCNDb, oldestChange, oldestChange.getBaseDN());
break;
}
}
@@ -1407,17 +1391,7 @@
else
{
// we are at the end of the DraftCNdb in the append mode
- // store in DraftCNdb the pair
- // (DraftCN of the current change, state before this change)
- oldestChange.setDraftChangeNumber(
- replicationServer.getNewDraftCN());
-
- draftCNDb.add(
- oldestChange.getDraftChangeNumber(),
- this.previousCookie.toString(),
- suffix,
- oldestChange.getUpdateMsg().getChangeNumber());
-
+ storeNewChange(draftCNDb, oldestChange, suffix);
break;
}
} // while DraftCN
@@ -1480,17 +1454,7 @@
{
// should generate DraftCN
DraftCNDbHandler draftCNDb =replicationServer.getDraftCNDbHandler();
-
- oldestChange.setDraftChangeNumber(
- replicationServer.getNewDraftCN());
-
- // store in DraftCNdb the pair
- // (DraftCN of the current change, state before this change)
- draftCNDb.add(
- oldestChange.getDraftChangeNumber(),
- this.previousCookie.toString(),
- suffix,
- oldestChange.getUpdateMsg().getChangeNumber());
+ storeNewChange(draftCNDb, oldestChange, suffix);
}
}
}
@@ -1526,6 +1490,29 @@
return oldestChange;
}
+ private boolean areSameChange(ChangeNumber cn1, String dn1, ChangeNumber cn2,
+ String dn2)
+ {
+ boolean sameDN = dn1.compareTo(dn2) == 0;
+ boolean sameCN = cn1.compareTo(cn2) == 0;
+ return sameDN && sameCN;
+ }
+
+ private void storeNewChange(DraftCNDbHandler draftCNDb, ECLUpdateMsg change,
+ String suffix)
+ {
+ // generate a new draftCN and assign to this change
+ change.setDraftChangeNumber(replicationServer.getNewDraftCN());
+
+ // store in DraftCNdb the pair
+ // (DraftCN of the current change, state before this change)
+ draftCNDb.add(
+ change.getDraftChangeNumber(),
+ previousCookie.toString(),
+ suffix,
+ change.getUpdateMsg().getChangeNumber());
+ }
+
/**
* Terminates the first (non persistent) phase of the search on the ECL.
*/
--
Gitblit v1.10.0