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 2011/03/11 19:32:16 UTC

svn commit: r1080716 - in /cassandra/branches/cassandra-0.7: ./ src/java/org/apache/cassandra/io/util/ test/unit/org/apache/cassandra/io/util/

Author: jbellis
Date: Fri Mar 11 18:32:16 2011
New Revision: 1080716

URL: http://svn.apache.org/viewvc?rev=1080716&view=rev
Log:
fix HH delivery when column index is larger than 2GB
patch by jbellis; reviewed by slebresne for CASSANDRA-2297

Modified:
    cassandra/branches/cassandra-0.7/CHANGES.txt
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/FileDataInput.java
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/MappedFileDataInput.java
    cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1080716&r1=1080715&r2=1080716&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Fri Mar 11 18:32:16 2011
@@ -23,6 +23,7 @@
  * purge tombstoned rows from cache after GCGraceSeconds (CASSANDRA-2305)
  * allow zero replicas in a NTS datacenter (CASSANDRA-1924)
  * make range queries respect snitch for local replicas (CASSANDRA-2286)
+ * fix HH delivery when column index is larger than 2GB (CASSANDRA-2297)
 
 
 0.7.3

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java?rev=1080716&r1=1080715&r2=1080716&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/BufferedRandomAccessFile.java Fri Mar 11 18:32:16 2011
@@ -408,14 +408,11 @@ public class BufferedRandomAccessFile ex
         seek(markedPointer);
     }
 
-    public int bytesPastMark()
+    public long bytesPastMark()
     {
         long bytes = getFilePointer() - markedPointer;
-
         assert bytes >= 0;
-        if (bytes > Integer.MAX_VALUE)
-            throw new UnsupportedOperationException("Overflow: " + bytes);
-        return (int) bytes;
+        return bytes;
     }
 
     public FileMark mark()
@@ -430,15 +427,12 @@ public class BufferedRandomAccessFile ex
         seek(((BufferedRandomAccessFileMark) mark).pointer);
     }
 
-    public int bytesPastMark(FileMark mark)
+    public long bytesPastMark(FileMark mark)
     {
         assert mark instanceof BufferedRandomAccessFileMark;
         long bytes = getFilePointer() - ((BufferedRandomAccessFileMark) mark).pointer;
-
         assert bytes >= 0;
-        if (bytes > Integer.MAX_VALUE)
-            throw new UnsupportedOperationException("Overflow: " + bytes);
-        return (int) bytes;
+        return bytes;
     }
 
     public static BufferedRandomAccessFile getUncachingReader(String filename) throws IOException

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/FileDataInput.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/FileDataInput.java?rev=1080716&r1=1080715&r2=1080716&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/FileDataInput.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/FileDataInput.java Fri Mar 11 18:32:16 2011
@@ -38,7 +38,7 @@ public interface FileDataInput extends D
 
     public void reset(FileMark mark) throws IOException;
 
-    public int bytesPastMark(FileMark mark);
+    public long bytesPastMark(FileMark mark);
 
     /**
      * Read length bytes from current file position

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/MappedFileDataInput.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/MappedFileDataInput.java?rev=1080716&r1=1080715&r2=1080716&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/MappedFileDataInput.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/util/MappedFileDataInput.java Fri Mar 11 18:32:16 2011
@@ -76,7 +76,7 @@ public class MappedFileDataInput extends
         return new MappedFileDataInputMark(position);
     }
 
-    public int bytesPastMark(FileMark mark)
+    public long bytesPastMark(FileMark mark)
     {
         assert mark instanceof MappedFileDataInputMark;
         assert position >= ((MappedFileDataInputMark) mark).position;

Modified: cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java?rev=1080716&r1=1080715&r2=1080716&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java (original)
+++ cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java Fri Mar 11 18:32:16 2011
@@ -425,18 +425,6 @@ public class BufferedRandomAccessFileTes
 
         // Expect this call to succeed.
         rw.bytesPastMark(mark);
-
-        // Seek 4gb
-        rw.seek(4L*1024L*1024L*1024L*1024L);
-
-        // Expect this call to fail -- the distance from mark to current file pointer > 2gb.
-        expectException(new Callable<Object>()
-        {
-            public Object call() throws IOException
-            {
-                return rw.bytesPastMark(mark);
-            }
-        }, UnsupportedOperationException.class);
     }
 
     @Test