You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/08/24 22:32:00 UTC

svn commit: r807365 - /incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java

Author: jbellis
Date: Mon Aug 24 20:32:00 2009
New Revision: 807365

URL: http://svn.apache.org/viewvc?rev=807365&view=rev
Log:
read(bytes) doesn't automatically throw EOFException if it reads less than asked for, so we need to check for that.
patch by jbellis; reviewed by Sammy Yu for CASSANDRA-370

Modified:
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java

Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java?rev=807365&r1=807364&r2=807365&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/CommitLog.java Mon Aug 24 20:32:00 2009
@@ -302,8 +302,11 @@
                 byte[] bytes;
                 try
                 {
-                    bytes = new byte[(int) reader.readLong()];
-                    reader.read(bytes);
+                    bytes = new byte[(int) reader.readLong()]; // readlong can throw EOFException too
+                    if (reader.read(bytes) < bytes.length)
+                    {
+                        throw new EOFException();
+                    }
                 }
                 catch (EOFException e)
                 {