From 410b7d0592ba0e1dc2f3d9c745523fee430bcabe Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 10 Jun 2011 10:25:31 +0000
Subject: [PATCH] Partial fix for OPENDJ-194: Minor improvements to change log content and configuration
---
opends/src/server/org/opends/server/replication/protocol/TopologyMsg.java | 32 ++++++++++++++++++++++++++------
1 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/protocol/TopologyMsg.java b/opends/src/server/org/opends/server/replication/protocol/TopologyMsg.java
index 2fdf43b..4288497 100644
--- a/opends/src/server/org/opends/server/replication/protocol/TopologyMsg.java
+++ b/opends/src/server/org/opends/server/replication/protocol/TopologyMsg.java
@@ -151,15 +151,14 @@
}
Set<String> attrs = new HashSet<String>();
+ Set<String> delattrs = new HashSet<String>();
short protocolVersion = -1;
- if (version>=ProtocolVersion.REPLICATION_PROTOCOL_V4)
+ if (version >= ProtocolVersion.REPLICATION_PROTOCOL_V4)
{
byte nAttrs = in[pos++];
nRead = 0;
/* Read attrs until expected number read */
- while ((nRead != nAttrs) &&
- (pos < in.length) //security
- )
+ while ((nRead != nAttrs) && (pos < in.length))
{
length = getNextLength(in, pos);
String attr = new String(in, pos, length, "UTF-8");
@@ -167,6 +166,19 @@
pos += length + 1;
nRead++;
}
+
+ nAttrs = in[pos++];
+ nRead = 0;
+ /* Read attrs until expected number read */
+ while ((nRead != nAttrs) && (pos < in.length))
+ {
+ length = getNextLength(in, pos);
+ String attr = new String(in, pos, length, "UTF-8");
+ delattrs.add(attr);
+ pos += length + 1;
+ nRead++;
+ }
+
/* Read Protocol version */
protocolVersion = Short.valueOf(in[pos++]);
}
@@ -175,7 +187,7 @@
DSInfo dsInfo = new DSInfo(dsId, rsId, generationId, status,
assuredFlag, assuredMode, safeDataLevel, groupId, refUrls, attrs,
- protocolVersion);
+ delattrs, protocolVersion);
dsList.add(dsInfo);
nDsInfo--;
@@ -347,9 +359,17 @@
oStream.write(attr.getBytes("UTF-8"));
oStream.write(0);
}
+
+ Set<String> delattrs = dsInfo.getEclIncludesForDeletes();
+ oStream.write(delattrs.size());
+ for (String attr : delattrs)
+ {
+ oStream.write(attr.getBytes("UTF-8"));
+ oStream.write(0);
+ }
+
oStream.write(dsInfo.getProtocolVersion());
}
-
}
// Put number of following RS info entries
--
Gitblit v1.10.0