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