From 3f27a7ede5ca9df06137254aa32d41d023ac105d Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Tue, 16 Sep 2014 15:05:25 +0000
Subject: [PATCH] OPENDJ-1444 CR-4537 Remove previous cookie from storage of ChangeNumberIndexDB

---
 opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java |   21 +++++++++++++--------
 1 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java b/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
index 75f4ff4..91d92aa 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2009 Sun Microsystems, Inc.
- *      Portions Copyright 2010-2013 ForgeRock AS.
+ *      Portions Copyright 2010-2014 ForgeRock AS.
  */
 package org.opends.server.replication.server.changelog.je;
 
@@ -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.decode(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