From a3f218b56d16d995c63ab7eef13a84818c6f2be7 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Fri, 10 Jun 2011 14:34:10 +0000
Subject: [PATCH] Partial fix for OPENDJ-194: Minor improvements to change log content and configuration

---
 opendj-sdk/opends/src/server/org/opends/server/replication/protocol/TopologyMsg.java |   44 ++++++++++++++++++++++++++++----------------
 1 files changed, 28 insertions(+), 16 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/TopologyMsg.java b/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/TopologyMsg.java
index 4288497..16be10e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/TopologyMsg.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/protocol/TopologyMsg.java
@@ -167,16 +167,24 @@
             nRead++;
           }
 
-          nAttrs = in[pos++];
-          nRead = 0;
-          /* Read attrs until expected number read */
-          while ((nRead != nAttrs) && (pos < in.length))
+          if (version >= ProtocolVersion.REPLICATION_PROTOCOL_V5)
           {
-            length = getNextLength(in, pos);
-            String attr = new String(in, pos, length, "UTF-8");
-            delattrs.add(attr);
-            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++;
+            }
+          }
+          else
+          {
+            // Default to using the same set of attributes for deletes.
+            delattrs.addAll(attrs);
           }
 
           /* Read Protocol version */
@@ -360,12 +368,15 @@
             oStream.write(0);
           }
 
-          Set<String> delattrs = dsInfo.getEclIncludesForDeletes();
-          oStream.write(delattrs.size());
-          for (String attr : delattrs)
+          if (version >= ProtocolVersion.REPLICATION_PROTOCOL_V5)
           {
-            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());
@@ -403,10 +414,11 @@
       }
 
       return oStream.toByteArray();
-    } catch (IOException e)
+    }
+    catch (IOException e)
     {
       // never happens
-      return null;
+      throw new RuntimeException(e);
     }
 
   }

--
Gitblit v1.10.0