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