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 */