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