Updated Branches:
  refs/heads/trunk 8c795372c -> 22bf2c40e

Fix buffer underflow on socket close

patch by yukim; reviewed by jbellis for CASSANDRA-5792


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

Branch: refs/heads/trunk
Commit: 22bf2c40e46ddf11e1ae0faf0db9e58578c662c4
Parents: 8c79537
Author: Yuki Morishita <yu...@apache.org>
Authored: Tue Jul 30 17:58:59 2013 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Jul 30 17:58:59 2013 -0500

----------------------------------------------------------------------
 CHANGES.txt                                         |  7 ++-----
 .../cassandra/streaming/messages/StreamMessage.java | 16 ++++++++++++----
 2 files changed, 14 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/22bf2c40/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 15223e2..0b74b05 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -6,6 +6,8 @@
  * Fix range tombstone bug (CASSANDRA-5805)
  * DC-local CAS (CASSANDRA-5797)
  * Add a native_protocol_version column to the system.local table 
(CASSANRDA-5819)
+ * Use index_interval from cassandra.yaml when upgraded (CASSANDRA-5822)
+ * Fix buffer underflow on socket close (CASSANDRA-5792)
 Merged from 1.2:
  * fix bulk-loading compressed sstables (CASSANDRA-5820)
  * (Hadoop) fix quoting in CqlPagingRecordReader and CqlRecordWriter 
@@ -13,16 +15,11 @@ Merged from 1.2:
  * update default LCS sstable size to 160MB (CASSANDRA-5727)
  * Allow compacting 2Is via nodetool (CASSANDRA-5670)
  * Hex-encode non-String keys in OPP (CASSANDRA-5793)
-
-
-1.2.8
->>>>>>> Allow compacting 2Is via nodetool
  * Fix reading DeletionTime from 1.1-format sstables (CASSANDRA-5814)
  * cqlsh: add collections support to COPY (CASSANDRA-5698)
  * retry important messages for any IOException (CASSANDRA-5804)
  * Allow empty IN relations in SELECT/UPDATE/DELETE statements (CASSANDRA-5626)
  * cqlsh: fix crashing on Windows due to libedit detection (CASSANDRA-5812)
- * Use index_interval from cassandra.yaml when upgraded (CASSANDRA-5822)
 
 
 2.0.0-beta2

http://git-wip-us.apache.org/repos/asf/cassandra/blob/22bf2c40/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java 
b/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
index 8ba731a..2e7341b 100644
--- a/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
+++ b/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
@@ -47,10 +47,18 @@ public abstract class StreamMessage
     public static StreamMessage deserialize(ReadableByteChannel in, int 
version, StreamSession session) throws IOException
     {
         ByteBuffer buff = ByteBuffer.allocate(1);
-        in.read(buff);
-        buff.flip();
-        Type type = Type.get(buff.get());
-        return type.serializer.deserialize(in, version, session);
+        if (in.read(buff) > 0)
+        {
+            buff.flip();
+            Type type = Type.get(buff.get());
+            return type.serializer.deserialize(in, version, session);
+        }
+        else
+        {
+            // when socket gets closed, there is a chance that buff is empty
+            // in that case, just return null
+            return null;
+        }
     }
 
     /** StreamMessage serializer */

Reply via email to