Repository: cassandra
Updated Branches:
  refs/heads/trunk 79e3217f9 -> 59695a254


Read message id as string from older nodes.

Patch by marcuse, reviewed by jbellis for CASSANDRA-6840


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c3aac456
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c3aac456
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c3aac456

Branch: refs/heads/trunk
Commit: c3aac45605416251f7bb9a3260299f1c4416cb89
Parents: c49d336
Author: Marcus Eriksson <marc...@apache.org>
Authored: Fri Mar 14 18:51:01 2014 +0100
Committer: Marcus Eriksson <marc...@apache.org>
Committed: Fri Mar 14 18:52:59 2014 +0100

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 .../apache/cassandra/db/RowMutationVerbHandler.java  | 15 ++++++++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/c3aac456/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index e208e21..2b8dea8 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -7,6 +7,7 @@
  * Restore expiring->deleted (cell) compaction optimization (CASSANDRA-6844)
  * Fix CompactionManager.needsCleanup (CASSANDRA-6845)
  * Correctly compare BooleanType values other than 0 and 1 (CASSANDRA-6779)
+ * Read message id as string from earlier versions (CASSANDRA-6840)
 Merged from 1.2:
  * fix nodetool getsstables for blob PK (CASSANDRA-6803)
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/c3aac456/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java 
b/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
index dcdfc2e..da7fa6a 100644
--- a/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
+++ b/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
@@ -46,7 +46,7 @@ public class RowMutationVerbHandler implements 
IVerbHandler<RowMutation>
                 replyTo = message.from;
                 byte[] forwardBytes = 
message.parameters.get(RowMutation.FORWARD_TO);
                 if (forwardBytes != null)
-                    forwardToLocalNodes(rm, message.verb, forwardBytes, 
message.from);
+                    forwardToLocalNodes(rm, message.verb, forwardBytes, 
message.from, message.version);
             }
             else
             {
@@ -68,7 +68,7 @@ public class RowMutationVerbHandler implements 
IVerbHandler<RowMutation>
      * Older version (< 1.0) will not send this message at all, hence we don't
      * need to check the version of the data.
      */
-    private void forwardToLocalNodes(RowMutation rm, MessagingService.Verb 
verb, byte[] forwardBytes, InetAddress from) throws IOException
+    private void forwardToLocalNodes(RowMutation rm, MessagingService.Verb 
verb, byte[] forwardBytes, InetAddress from, int version) throws IOException
     {
         DataInputStream in = new DataInputStream(new 
FastByteArrayInputStream(forwardBytes));
         int size = in.readInt();
@@ -79,7 +79,16 @@ public class RowMutationVerbHandler implements 
IVerbHandler<RowMutation>
         for (int i = 0; i < size; i++)
         {
             InetAddress address = 
CompactEndpointSerializationHelper.deserialize(in);
-            int id = in.readInt();
+            int id;
+            if (version < MessagingService.VERSION_20)
+            {
+                String s = in.readUTF();
+                id = Integer.parseInt(s);
+            }
+            else
+            {
+                id = in.readInt();
+            }
             Tracing.trace("Enqueuing forwarded write to {}", address);
             MessagingService.instance().sendOneWay(message, id, address);
         }

Reply via email to