From 41bef7c0b619c7bc925326451a56071b5736580a Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Wed, 19 Jun 2013 08:36:16 +0000
Subject: [PATCH] Fix OPENDJ-986: Exception when reading messages from Replication server RS

---
 opends/src/server/org/opends/server/replication/protocol/ServerStartMsg.java |   11 +++++------
 1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/protocol/ServerStartMsg.java b/opends/src/server/org/opends/server/replication/protocol/ServerStartMsg.java
index d516608..c2a0da1 100644
--- a/opends/src/server/org/opends/server/replication/protocol/ServerStartMsg.java
+++ b/opends/src/server/org/opends/server/replication/protocol/ServerStartMsg.java
@@ -73,7 +73,6 @@
    * @param windowSize   The window size used by this server.
    * @param heartbeatInterval The requested heartbeat interval.
    * @param serverState  The state of this server.
-   * @param protocolVersion The replication protocol version of the creator.
    * @param generationId The generationId for this server.
    * @param sslEncryption Whether to continue using SSL to encrypt messages
    *                      after the start messages have been exchanged.
@@ -81,10 +80,10 @@
    */
   public ServerStartMsg(int serverId2, String serverURL, String baseDn,
       int windowSize, long heartbeatInterval, ServerState serverState,
-      short protocolVersion, long generationId, boolean sslEncryption,
+      long generationId, boolean sslEncryption,
       byte groupId)
   {
-    super(protocolVersion, generationId);
+    super((short) -1 /* version set when sending */, generationId);
 
     this.serverId = serverId2;
     this.serverURL = serverURL;
@@ -282,7 +281,7 @@
    * {@inheritDoc}
    */
   @Override
-  public byte[] getBytes()
+  public byte[] getBytes(short sessionProtocolVersion)
   {
     try {
       byte[] byteDn = baseDn.getBytes("UTF-8");
@@ -316,8 +315,8 @@
                    byteServerState.length + 1;
 
       /* encode the header in a byte[] large enough to also contain the mods */
-      byte resultByteArray[] = encodeHeader(
-          MSG_TYPE_SERVER_START, length, ProtocolVersion.getCurrentVersion());
+      byte resultByteArray[] = encodeHeader(MSG_TYPE_SERVER_START, length,
+          sessionProtocolVersion);
       int pos = headerLength;
 
       pos = addByteArray(byteDn, resultByteArray, pos);

--
Gitblit v1.10.0