From f28eee1ba07554be73881e1df417494b3968ea85 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Mon, 22 Sep 2014 14:55:35 +0000
Subject: [PATCH] OPENDJ-1444 CR-4537 Remove previous cookie from storage of ChangeNumberIndexDB

---
 opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
index 634ec3c..0abdddc 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
@@ -45,6 +45,8 @@
 {
   private static final String FIELD_SEPARATOR = "!";
 
+  private static final String EMPTY_STRING_PREVIOUS_COOKIE = "";
+
   private static final long serialVersionUID = 1L;
 
   private long changeNumber;
@@ -55,19 +57,17 @@
    *
    * @param changeNumber
    *          the change number
-   * @param previousCookie
-   *          The previous cookie
    * @param baseDN
    *          The baseDN (domain DN)
    * @param csn
    *          The replication CSN
    */
-  public DraftCNData(long changeNumber, String previousCookie, String baseDN,
-      CSN csn)
+  public DraftCNData(long changeNumber, String baseDN, CSN csn)
   {
     this.changeNumber = changeNumber;
-    String record =
-        previousCookie + FIELD_SEPARATOR + baseDN + FIELD_SEPARATOR + csn;
+    // Although the previous cookie is not used any more, we need
+    // to keep it in database for compatibility with previous versions
+    String record = EMPTY_STRING_PREVIOUS_COOKIE + FIELD_SEPARATOR + baseDN + FIELD_SEPARATOR + csn;
     setData(getBytes(record));
   }
 
@@ -102,11 +102,14 @@
   {
     try
     {
+      // Although the previous cookie is not used any more, we need
+      // to keep it in database for compatibility with previous versions
       String stringData = new String(data, "UTF-8");
       String[] str = stringData.split(FIELD_SEPARATOR, 3);
+      // str[0] contains previous cookie and is ignored
       final DN baseDN = DN.valueOf(str[1]);
       final CSN csn = new CSN(str[2]);
-      return new ChangeNumberIndexRecord(changeNumber, str[0], baseDN, csn);
+      return new ChangeNumberIndexRecord(changeNumber, baseDN, csn);
     }
     catch (UnsupportedEncodingException e)
     {
@@ -130,7 +133,9 @@
   public ChangeNumberIndexRecord getRecord() throws ChangelogException
   {
     if (record == null)
+    {
       record = decodeData(changeNumber, getData());
+    }
     return record;
   }
 

--
Gitblit v1.10.0