Updated Branches:
  refs/heads/trunk bfe1e1cef -> 6158c6428

Fix binary protocol versioning


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

Branch: refs/heads/trunk
Commit: 6158c6428ea72311d7dc477df871aa99857d567a
Parents: bfe1e1c
Author: Sylvain Lebresne <[email protected]>
Authored: Wed Jul 3 14:54:18 2013 +0200
Committer: Sylvain Lebresne <[email protected]>
Committed: Wed Jul 3 14:54:18 2013 +0200

----------------------------------------------------------------------
 src/java/org/apache/cassandra/cql3/ResultSet.java        |  4 ++--
 .../cassandra/transport/messages/ResultMessage.java      | 11 +++++++----
 2 files changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6158c642/src/java/org/apache/cassandra/cql3/ResultSet.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/ResultSet.java 
b/src/java/org/apache/cassandra/cql3/ResultSet.java
index 21ef8e8..6f0dcb9 100644
--- a/src/java/org/apache/cassandra/cql3/ResultSet.java
+++ b/src/java/org/apache/cassandra/cql3/ResultSet.java
@@ -218,7 +218,7 @@ public class ResultSet
     {
         public static final CBCodec<Metadata> codec = new Codec();
 
-        public static final Metadata empty = new 
Metadata(EnumSet.of(Flag.NO_METADATA), 0);
+        public static final Metadata EMPTY = new 
Metadata(EnumSet.of(Flag.NO_METADATA), 0);
 
         public final EnumSet<Flag> flags;
         public final List<ColumnSpecification> names;
@@ -345,7 +345,7 @@ public class ResultSet
 
                 ChannelBuffer header = ChannelBuffers.buffer(8);
 
-                assert version > 1 || (!m.flags.contains(Flag.HAS_MORE_PAGES) 
&& !noMetadata);
+                assert version > 1 || (!m.flags.contains(Flag.HAS_MORE_PAGES) 
&& !noMetadata): "version = " + version + ", flags = " + m.flags;
 
                 header.writeInt(Flag.serialize(m.flags));
                 header.writeInt(m.columnCount);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6158c642/src/java/org/apache/cassandra/transport/messages/ResultMessage.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/transport/messages/ResultMessage.java 
b/src/java/org/apache/cassandra/transport/messages/ResultMessage.java
index 9300f42..108572c 100644
--- a/src/java/org/apache/cassandra/transport/messages/ResultMessage.java
+++ b/src/java/org/apache/cassandra/transport/messages/ResultMessage.java
@@ -244,7 +244,10 @@ public abstract class ResultMessage extends 
Message.Response
             {
                 MD5Digest id = MD5Digest.wrap(CBUtil.readBytes(body));
                 ResultSet.Metadata metadata = 
ResultSet.Metadata.codec.decode(body, version);
-                ResultSet.Metadata resultMetadata = 
ResultSet.Metadata.codec.decode(body, version);
+
+                ResultSet.Metadata resultMetadata = ResultSet.Metadata.EMPTY;
+                if (version > 1)
+                    resultMetadata = ResultSet.Metadata.codec.decode(body, 
version);
 
                 return new Prepared(id, -1, metadata, resultMetadata);
             }
@@ -258,7 +261,7 @@ public abstract class ResultMessage extends Message.Response
 
                 return 
ChannelBuffers.wrappedBuffer(CBUtil.bytesToCB(prepared.statementId.bytes),
                                                     
ResultSet.Metadata.codec.encode(prepared.metadata, version),
-                                                    
ResultSet.Metadata.codec.encode(prepared.resultMetadata, version));
+                                                    version > 1 ? 
ResultSet.Metadata.codec.encode(prepared.resultMetadata, version) : 
ChannelBuffers.EMPTY_BUFFER);
             }
         };
 
@@ -276,7 +279,7 @@ public abstract class ResultMessage extends Message.Response
 
         public static Prepared forThrift(int statementId, 
List<ColumnSpecification> names)
         {
-            return new Prepared(null, statementId, new 
ResultSet.Metadata(names), ResultSet.Metadata.empty);
+            return new Prepared(null, statementId, new 
ResultSet.Metadata(names), ResultSet.Metadata.EMPTY);
         }
 
         private Prepared(MD5Digest statementId, int thriftStatementId, 
ResultSet.Metadata metadata, ResultSet.Metadata resultMetadata)
@@ -291,7 +294,7 @@ public abstract class ResultMessage extends Message.Response
         private static ResultSet.Metadata extractResultMetadata(CQLStatement 
statement)
         {
             if (!(statement instanceof SelectStatement))
-                return ResultSet.Metadata.empty;
+                return ResultSet.Metadata.EMPTY;
 
             return ((SelectStatement)statement).getResultMetadata();
         }

Reply via email to