You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by yu...@apache.org on 2015/09/02 00:01:46 UTC

[01/10] cassandra git commit: Fix handling of streaming EOF

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 542bb1fa4 -> 2267d7918
  refs/heads/cassandra-2.2 3effec53e -> 02e5478f0
  refs/heads/cassandra-3.0 45eba1adb -> ae669b0b3
  refs/heads/trunk 0d2603cf9 -> 97b57cbdf


Fix handling of streaming EOF

patch by Alexey Burylov; reviewed by yukim for CASSANDRA-10206


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

Branch: refs/heads/cassandra-2.1
Commit: 2267d79188c4388674ea40268a12f9c19f0fb9a7
Parents: 542bb1f
Author: Alexey Burylov <a....@qiwi.ru>
Authored: Tue Sep 1 12:18:17 2015 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Sep 1 12:18:17 2015 -0500

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 .../cassandra/streaming/messages/StreamMessage.java  | 15 ++++++++++-----
 2 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2267d791/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7841f9b..681a40b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.10
+ * Fix handling of streaming EOF (CASSANDRA-10206)
  * Only check KeyCache when it is enabled
  * Change streaming_socket_timeout_in_ms default to 1 hour (CASSANDRA-8611)
  * (cqlsh) update list of CQL keywords (CASSANDRA-9232)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2267d791/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 360b59e..9724bf1 100644
--- a/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
+++ b/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
@@ -18,9 +18,9 @@
 package org.apache.cassandra.streaming.messages;
 
 import java.io.IOException;
+import java.net.SocketException;
 import java.nio.ByteBuffer;
 import java.nio.channels.ReadableByteChannel;
-import java.nio.channels.WritableByteChannel;
 
 import org.apache.cassandra.io.util.DataOutputStreamAndChannel;
 import org.apache.cassandra.streaming.StreamSession;
@@ -48,18 +48,23 @@ public abstract class StreamMessage
     public static StreamMessage deserialize(ReadableByteChannel in, int version, StreamSession session) throws IOException
     {
         ByteBuffer buff = ByteBuffer.allocate(1);
-        if (in.read(buff) > 0)
+        int readBytes = in.read(buff);
+        if (readBytes > 0)
         {
             buff.flip();
             Type type = Type.get(buff.get());
             return type.inSerializer.deserialize(in, version, session);
         }
-        else
+        else if (readBytes == 0)
         {
-            // when socket gets closed, there is a chance that buff is empty
-            // in that case, just return null
+            // input socket buffer was not filled yet
             return null;
         }
+        else
+        {
+            // possibly socket gets closed
+            throw new SocketException("End-of-stream reached");
+        }
     }
 
     /** StreamMessage serializer */


[05/10] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by yu...@apache.org.
Merge branch 'cassandra-2.1' into cassandra-2.2


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

Branch: refs/heads/cassandra-3.0
Commit: 02e5478f05178cbc563605dcaa65de60066e046e
Parents: 3effec5 2267d79
Author: Yuki Morishita <yu...@apache.org>
Authored: Tue Sep 1 16:58:13 2015 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Sep 1 16:58:13 2015 -0500

----------------------------------------------------------------------
 CHANGES.txt                                           |  1 +
 .../cassandra/streaming/messages/StreamMessage.java   | 14 ++++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/02e5478f/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index ffff102,681a40b..91ae36c
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,8 -1,5 +1,9 @@@
 -2.1.10
 +2.2.2
 + * Fix repair hang when snapshot failed (CASSANDRA-10057)
 + * Fall back to 1/4 commitlog volume for commitlog_total_space on small disks
 +   (CASSANDRA-10199)
 +Merged from 2.1:
+  * Fix handling of streaming EOF (CASSANDRA-10206)
   * Only check KeyCache when it is enabled
   * Change streaming_socket_timeout_in_ms default to 1 hour (CASSANDRA-8611)
   * (cqlsh) update list of CQL keywords (CASSANDRA-9232)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/02e5478f/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
----------------------------------------------------------------------


[09/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by yu...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0


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

Branch: refs/heads/trunk
Commit: ae669b0b3b11798afe0162838e4d6659fcabb678
Parents: 45eba1a 02e5478
Author: Yuki Morishita <yu...@apache.org>
Authored: Tue Sep 1 16:58:21 2015 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Sep 1 16:58:21 2015 -0500

----------------------------------------------------------------------
 CHANGES.txt                                           |  1 +
 .../cassandra/streaming/messages/StreamMessage.java   | 14 ++++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ae669b0b/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ae669b0b/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
----------------------------------------------------------------------


[06/10] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by yu...@apache.org.
Merge branch 'cassandra-2.1' into cassandra-2.2


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

Branch: refs/heads/cassandra-2.2
Commit: 02e5478f05178cbc563605dcaa65de60066e046e
Parents: 3effec5 2267d79
Author: Yuki Morishita <yu...@apache.org>
Authored: Tue Sep 1 16:58:13 2015 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Sep 1 16:58:13 2015 -0500

----------------------------------------------------------------------
 CHANGES.txt                                           |  1 +
 .../cassandra/streaming/messages/StreamMessage.java   | 14 ++++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/02e5478f/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index ffff102,681a40b..91ae36c
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,8 -1,5 +1,9 @@@
 -2.1.10
 +2.2.2
 + * Fix repair hang when snapshot failed (CASSANDRA-10057)
 + * Fall back to 1/4 commitlog volume for commitlog_total_space on small disks
 +   (CASSANDRA-10199)
 +Merged from 2.1:
+  * Fix handling of streaming EOF (CASSANDRA-10206)
   * Only check KeyCache when it is enabled
   * Change streaming_socket_timeout_in_ms default to 1 hour (CASSANDRA-8611)
   * (cqlsh) update list of CQL keywords (CASSANDRA-9232)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/02e5478f/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
----------------------------------------------------------------------


[10/10] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

Posted by yu...@apache.org.
Merge branch 'cassandra-3.0' into trunk


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

Branch: refs/heads/trunk
Commit: 97b57cbdf790274934bcedfe435a5daad78839fc
Parents: 0d2603c ae669b0
Author: Yuki Morishita <yu...@apache.org>
Authored: Tue Sep 1 16:58:27 2015 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Sep 1 16:58:27 2015 -0500

----------------------------------------------------------------------
 CHANGES.txt                                           |  1 +
 .../cassandra/streaming/messages/StreamMessage.java   | 14 ++++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/97b57cbd/CHANGES.txt
----------------------------------------------------------------------


[08/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by yu...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0


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

Branch: refs/heads/cassandra-3.0
Commit: ae669b0b3b11798afe0162838e4d6659fcabb678
Parents: 45eba1a 02e5478
Author: Yuki Morishita <yu...@apache.org>
Authored: Tue Sep 1 16:58:21 2015 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Sep 1 16:58:21 2015 -0500

----------------------------------------------------------------------
 CHANGES.txt                                           |  1 +
 .../cassandra/streaming/messages/StreamMessage.java   | 14 ++++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ae669b0b/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ae669b0b/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
----------------------------------------------------------------------


[07/10] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

Posted by yu...@apache.org.
Merge branch 'cassandra-2.1' into cassandra-2.2


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

Branch: refs/heads/trunk
Commit: 02e5478f05178cbc563605dcaa65de60066e046e
Parents: 3effec5 2267d79
Author: Yuki Morishita <yu...@apache.org>
Authored: Tue Sep 1 16:58:13 2015 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Sep 1 16:58:13 2015 -0500

----------------------------------------------------------------------
 CHANGES.txt                                           |  1 +
 .../cassandra/streaming/messages/StreamMessage.java   | 14 ++++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/02e5478f/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index ffff102,681a40b..91ae36c
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,8 -1,5 +1,9 @@@
 -2.1.10
 +2.2.2
 + * Fix repair hang when snapshot failed (CASSANDRA-10057)
 + * Fall back to 1/4 commitlog volume for commitlog_total_space on small disks
 +   (CASSANDRA-10199)
 +Merged from 2.1:
+  * Fix handling of streaming EOF (CASSANDRA-10206)
   * Only check KeyCache when it is enabled
   * Change streaming_socket_timeout_in_ms default to 1 hour (CASSANDRA-8611)
   * (cqlsh) update list of CQL keywords (CASSANDRA-9232)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/02e5478f/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
----------------------------------------------------------------------


[04/10] cassandra git commit: Fix handling of streaming EOF

Posted by yu...@apache.org.
Fix handling of streaming EOF

patch by Alexey Burylov; reviewed by yukim for CASSANDRA-10206


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

Branch: refs/heads/trunk
Commit: 2267d79188c4388674ea40268a12f9c19f0fb9a7
Parents: 542bb1f
Author: Alexey Burylov <a....@qiwi.ru>
Authored: Tue Sep 1 12:18:17 2015 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Sep 1 12:18:17 2015 -0500

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 .../cassandra/streaming/messages/StreamMessage.java  | 15 ++++++++++-----
 2 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2267d791/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7841f9b..681a40b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.10
+ * Fix handling of streaming EOF (CASSANDRA-10206)
  * Only check KeyCache when it is enabled
  * Change streaming_socket_timeout_in_ms default to 1 hour (CASSANDRA-8611)
  * (cqlsh) update list of CQL keywords (CASSANDRA-9232)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2267d791/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 360b59e..9724bf1 100644
--- a/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
+++ b/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
@@ -18,9 +18,9 @@
 package org.apache.cassandra.streaming.messages;
 
 import java.io.IOException;
+import java.net.SocketException;
 import java.nio.ByteBuffer;
 import java.nio.channels.ReadableByteChannel;
-import java.nio.channels.WritableByteChannel;
 
 import org.apache.cassandra.io.util.DataOutputStreamAndChannel;
 import org.apache.cassandra.streaming.StreamSession;
@@ -48,18 +48,23 @@ public abstract class StreamMessage
     public static StreamMessage deserialize(ReadableByteChannel in, int version, StreamSession session) throws IOException
     {
         ByteBuffer buff = ByteBuffer.allocate(1);
-        if (in.read(buff) > 0)
+        int readBytes = in.read(buff);
+        if (readBytes > 0)
         {
             buff.flip();
             Type type = Type.get(buff.get());
             return type.inSerializer.deserialize(in, version, session);
         }
-        else
+        else if (readBytes == 0)
         {
-            // when socket gets closed, there is a chance that buff is empty
-            // in that case, just return null
+            // input socket buffer was not filled yet
             return null;
         }
+        else
+        {
+            // possibly socket gets closed
+            throw new SocketException("End-of-stream reached");
+        }
     }
 
     /** StreamMessage serializer */


[03/10] cassandra git commit: Fix handling of streaming EOF

Posted by yu...@apache.org.
Fix handling of streaming EOF

patch by Alexey Burylov; reviewed by yukim for CASSANDRA-10206


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

Branch: refs/heads/cassandra-3.0
Commit: 2267d79188c4388674ea40268a12f9c19f0fb9a7
Parents: 542bb1f
Author: Alexey Burylov <a....@qiwi.ru>
Authored: Tue Sep 1 12:18:17 2015 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Sep 1 12:18:17 2015 -0500

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 .../cassandra/streaming/messages/StreamMessage.java  | 15 ++++++++++-----
 2 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2267d791/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7841f9b..681a40b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.10
+ * Fix handling of streaming EOF (CASSANDRA-10206)
  * Only check KeyCache when it is enabled
  * Change streaming_socket_timeout_in_ms default to 1 hour (CASSANDRA-8611)
  * (cqlsh) update list of CQL keywords (CASSANDRA-9232)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2267d791/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 360b59e..9724bf1 100644
--- a/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
+++ b/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
@@ -18,9 +18,9 @@
 package org.apache.cassandra.streaming.messages;
 
 import java.io.IOException;
+import java.net.SocketException;
 import java.nio.ByteBuffer;
 import java.nio.channels.ReadableByteChannel;
-import java.nio.channels.WritableByteChannel;
 
 import org.apache.cassandra.io.util.DataOutputStreamAndChannel;
 import org.apache.cassandra.streaming.StreamSession;
@@ -48,18 +48,23 @@ public abstract class StreamMessage
     public static StreamMessage deserialize(ReadableByteChannel in, int version, StreamSession session) throws IOException
     {
         ByteBuffer buff = ByteBuffer.allocate(1);
-        if (in.read(buff) > 0)
+        int readBytes = in.read(buff);
+        if (readBytes > 0)
         {
             buff.flip();
             Type type = Type.get(buff.get());
             return type.inSerializer.deserialize(in, version, session);
         }
-        else
+        else if (readBytes == 0)
         {
-            // when socket gets closed, there is a chance that buff is empty
-            // in that case, just return null
+            // input socket buffer was not filled yet
             return null;
         }
+        else
+        {
+            // possibly socket gets closed
+            throw new SocketException("End-of-stream reached");
+        }
     }
 
     /** StreamMessage serializer */


[02/10] cassandra git commit: Fix handling of streaming EOF

Posted by yu...@apache.org.
Fix handling of streaming EOF

patch by Alexey Burylov; reviewed by yukim for CASSANDRA-10206


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

Branch: refs/heads/cassandra-2.2
Commit: 2267d79188c4388674ea40268a12f9c19f0fb9a7
Parents: 542bb1f
Author: Alexey Burylov <a....@qiwi.ru>
Authored: Tue Sep 1 12:18:17 2015 -0500
Committer: Yuki Morishita <yu...@apache.org>
Committed: Tue Sep 1 12:18:17 2015 -0500

----------------------------------------------------------------------
 CHANGES.txt                                          |  1 +
 .../cassandra/streaming/messages/StreamMessage.java  | 15 ++++++++++-----
 2 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2267d791/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7841f9b..681a40b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.10
+ * Fix handling of streaming EOF (CASSANDRA-10206)
  * Only check KeyCache when it is enabled
  * Change streaming_socket_timeout_in_ms default to 1 hour (CASSANDRA-8611)
  * (cqlsh) update list of CQL keywords (CASSANDRA-9232)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2267d791/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 360b59e..9724bf1 100644
--- a/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
+++ b/src/java/org/apache/cassandra/streaming/messages/StreamMessage.java
@@ -18,9 +18,9 @@
 package org.apache.cassandra.streaming.messages;
 
 import java.io.IOException;
+import java.net.SocketException;
 import java.nio.ByteBuffer;
 import java.nio.channels.ReadableByteChannel;
-import java.nio.channels.WritableByteChannel;
 
 import org.apache.cassandra.io.util.DataOutputStreamAndChannel;
 import org.apache.cassandra.streaming.StreamSession;
@@ -48,18 +48,23 @@ public abstract class StreamMessage
     public static StreamMessage deserialize(ReadableByteChannel in, int version, StreamSession session) throws IOException
     {
         ByteBuffer buff = ByteBuffer.allocate(1);
-        if (in.read(buff) > 0)
+        int readBytes = in.read(buff);
+        if (readBytes > 0)
         {
             buff.flip();
             Type type = Type.get(buff.get());
             return type.inSerializer.deserialize(in, version, session);
         }
-        else
+        else if (readBytes == 0)
         {
-            // when socket gets closed, there is a chance that buff is empty
-            // in that case, just return null
+            // input socket buffer was not filled yet
             return null;
         }
+        else
+        {
+            // possibly socket gets closed
+            throw new SocketException("End-of-stream reached");
+        }
     }
 
     /** StreamMessage serializer */