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