Author: jbellis
Date: Mon Mar 28 21:21:29 2011
New Revision: 1086406

URL: http://svn.apache.org/viewvc?rev=1086406&view=rev
Log:
merge from 0.7

Modified:
    cassandra/trunk/   (props changed)
    cassandra/trunk/CHANGES.txt
    cassandra/trunk/conf/schema-sample.txt
    cassandra/trunk/contrib/   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
   (props changed)
    cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g
    
cassandra/trunk/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
    
cassandra/trunk/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
    
cassandra/trunk/src/java/org/apache/cassandra/hadoop/streaming/AvroOutputReader.java
    cassandra/trunk/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
    cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java
    cassandra/trunk/src/java/org/apache/cassandra/io/util/FileUtils.java
    cassandra/trunk/src/java/org/apache/cassandra/utils/ByteBufferUtil.java

Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar 28 21:21:29 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000
-/cassandra/branches/cassandra-0.7:1026516-1085372,1085538,1086343,1086350-1086351
+/cassandra/branches/cassandra-0.7:1026516-1086404
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689
 /incubator/cassandra/branches/cassandra-0.3:774578-796573

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1086406&r1=1086405&r2=1086406&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Mon Mar 28 21:21:29 2011
@@ -34,6 +34,8 @@
    charset is not UTF8 (CASSANDRA-2367)
  * fix potential infinite loop in ByteBufferUtil.inputStream (CASSANDRA-2365)
  * allow negative numbers in the cli (CASSANDRA-2358)
+ * fix incorrect truncation of long to int when reading columns via block 
+   index (CASSANDRA-2376)
 
 
 0.7.4

Modified: cassandra/trunk/conf/schema-sample.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/conf/schema-sample.txt?rev=1086406&r1=1086405&r2=1086406&view=diff
==============================================================================
--- cassandra/trunk/conf/schema-sample.txt (original)
+++ cassandra/trunk/conf/schema-sample.txt Mon Mar 28 21:21:29 2011
@@ -53,7 +53,8 @@ create column family Super3
     and comment = 'A column family with supercolumns, whose column names are 
Longs (8 bytes)';
 
 create column family Indexed1
-    with default_validation_class = LongType
+    with comparator = UTF8Type
+    and default_validation_class = LongType
     and column_metadata = [{
         column_name : birthdate,
         validation_class : LongType,

Propchange: cassandra/trunk/contrib/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar 28 21:21:29 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
-/cassandra/branches/cassandra-0.7/contrib:1026516-1085372,1085538,1086343,1086350-1086351
+/cassandra/branches/cassandra-0.7/contrib:1026516-1086404
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689
 /incubator/cassandra/branches/cassandra-0.3/contrib:774578-796573

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar 28 21:21:29 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1085372,1085538,1086343,1086350-1086351
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1086404
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689
 
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar 28 21:21:29 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1085372,1085538,1086343,1086350-1086351
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1086404
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689
 
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar 28 21:21:29 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1085372,1085538,1086343,1086350-1086351
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1086404
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689
 
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar 28 21:21:29 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1085372,1085538,1086343,1086350-1086351
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1086404
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689
 
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Mar 28 21:21:29 2011
@@ -1,5 +1,5 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000
-/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1085372,1085538,1086343,1086350-1086351
+/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1086404
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689
 
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198

Modified: cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g?rev=1086406&r1=1086405&r2=1086406&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cli/Cli.g Mon Mar 28 21:21:29 
2011
@@ -591,7 +591,6 @@ Alnum
 // syntactic Elements
 IntegerPositiveLiteral
    : Digit+
-   | '-' Digit+
    ;
 
 IntegerNegativeLiteral

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java?rev=1086406&r1=1086405&r2=1086406&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
 Mon Mar 28 21:21:29 2011
@@ -39,6 +39,7 @@ import org.apache.cassandra.io.sstable.I
 import org.apache.cassandra.io.util.FileDataInput;
 import org.apache.cassandra.io.util.FileMark;
 import org.apache.cassandra.io.sstable.SSTableReader;
+import org.apache.cassandra.io.util.FileUtils;
 
 /**
  *  This is a reader that finds the block for a starting column and returns
@@ -172,8 +173,7 @@ class IndexedSliceReader extends Abstrac
 
             boolean outOfBounds = false;
             file.reset(mark);
-            long curOffset = file.skipBytes((int) curColPosition.offset);
-            assert curOffset == curColPosition.offset;
+            FileUtils.skipBytesFully(file, curColPosition.offset);
             while (file.bytesPastMark(mark) < curColPosition.offset + 
curColPosition.width && !outOfBounds)
             {
                 IColumn column = 
emptyColumnFamily.getColumnSerializer().deserialize(file);

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java?rev=1086406&r1=1086405&r2=1086406&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
 Mon Mar 28 21:21:29 2011
@@ -172,8 +172,7 @@ public class SSTableNamesIterator extend
         for (IndexHelper.IndexInfo indexInfo : ranges)
         {
             file.reset(mark);
-            long curOffsert = file.skipBytes((int) indexInfo.offset);
-            assert curOffsert == indexInfo.offset;
+            FileUtils.skipBytesFully(file, indexInfo.offset);
             // TODO only completely deserialize columns we are interested in
             while (file.bytesPastMark(mark) < indexInfo.offset + 
indexInfo.width)
             {

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/hadoop/streaming/AvroOutputReader.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/hadoop/streaming/AvroOutputReader.java?rev=1086406&r1=1086405&r2=1086406&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/hadoop/streaming/AvroOutputReader.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/hadoop/streaming/AvroOutputReader.java
 Mon Mar 28 21:21:29 2011
@@ -32,6 +32,7 @@ import org.apache.avro.io.DecoderFactory
 import org.apache.avro.specific.SpecificDatumReader;
 import org.apache.cassandra.hadoop.avro.Mutation;
 import org.apache.cassandra.hadoop.avro.StreamingMutation;
+import org.apache.cassandra.io.util.FileUtils;
 import org.apache.hadoop.streaming.PipeMapRed;
 import org.apache.hadoop.streaming.io.OutputReader;
 
@@ -139,15 +140,8 @@ public class AvroOutputReader extends Ou
         @Override
         public long skip(long n) throws IOException
         {
-            long skipped = 0;
-            while (n > 0)
-            {
-                // skip in batches up to max_int in size
-                int skip = (int)Math.min(Integer.MAX_VALUE, n);
-                skipped += in.skipBytes(skip);
-                n -= skip;
-            }
-            return skipped;
+            FileUtils.skipBytesFully(in, n);
+            return n;
         }
     }
 }

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/io/sstable/IndexHelper.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/IndexHelper.java?rev=1086406&r1=1086405&r2=1086406&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/IndexHelper.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/IndexHelper.java 
Mon Mar 28 21:21:29 2011
@@ -28,6 +28,7 @@ import java.util.List;
 import org.apache.cassandra.db.marshal.AbstractType;
 import org.apache.cassandra.io.util.FileDataInput;
 import org.apache.cassandra.io.util.FileMark;
+import org.apache.cassandra.io.util.FileUtils;
 import org.apache.cassandra.utils.*;
 
 /**
@@ -46,9 +47,7 @@ public class IndexHelper
         /* size of the bloom filter */
         int size = in.readInt();
         /* skip the serialized bloom filter */
-        int skipped = in.skipBytes(size);
-        if (skipped != size)
-            throw new EOFException("attempted to skip " + size + " bytes but 
only skipped " + skipped);
+        FileUtils.skipBytesFully(in, size);
     }
 
        /**
@@ -61,8 +60,7 @@ public class IndexHelper
         /* read only the column index list */
         int columnIndexSize = file.readInt();
         /* skip the column index data */
-        if (file.skipBytes(columnIndexSize) != columnIndexSize)
-            throw new EOFException();
+        FileUtils.skipBytesFully(file, columnIndexSize);
        }
     
     /**

Modified: cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java?rev=1086406&r1=1086405&r2=1086406&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/sstable/SSTable.java Mon 
Mar 28 21:21:29 2011
@@ -227,7 +227,7 @@ public abstract class SSTable
         while (ifile.getFilePointer() < BYTES_CAP && keys < SAMPLES_CAP)
         {
             ByteBufferUtil.skipShortLength(ifile);
-            ifile.skipBytes(8);
+            FileUtils.skipBytesFully(ifile, 8);
             keys++;
         }
         assert keys > 0 && ifile.getFilePointer() > 0 && ifile.length() > 0;

Modified: cassandra/trunk/src/java/org/apache/cassandra/io/util/FileUtils.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/io/util/FileUtils.java?rev=1086406&r1=1086405&r2=1086406&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/io/util/FileUtils.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/io/util/FileUtils.java Mon 
Mar 28 21:21:29 2011
@@ -210,4 +210,29 @@ public class FileUtils
         // The directory is now empty so now it can be smoked
         deleteWithConfirm(dir);
     }
+
+    public static void skipBytesFully(DataInput in, int bytes) throws 
IOException
+    {
+        int n = 0;
+        while (n < bytes)
+        {
+            int skipped = in.skipBytes(bytes - n);
+            if (skipped == 0)
+                throw new EOFException("EOF after " + n + " bytes out of " + 
bytes);
+            n += skipped;
+        }
+    }
+
+    public static void skipBytesFully(DataInput in, long bytes) throws 
IOException
+    {
+        long n = 0;
+        while (n < bytes)
+        {
+            int m = (int) Math.min(Integer.MAX_VALUE, bytes - n);
+            int skipped = in.skipBytes(m);
+            if (skipped == 0)
+                throw new EOFException("EOF after " + n + " bytes out of " + 
bytes);
+            n += skipped;
+        }
+    }
 }

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/utils/ByteBufferUtil.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/utils/ByteBufferUtil.java?rev=1086406&r1=1086405&r2=1086406&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/utils/ByteBufferUtil.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/utils/ByteBufferUtil.java Mon 
Mar 28 21:21:29 2011
@@ -31,6 +31,8 @@ import java.util.Arrays;
 import static com.google.common.base.Charsets.UTF_8;
 
 import org.apache.cassandra.io.util.FileDataInput;
+import org.apache.cassandra.io.util.FileUtils;
+
 import org.apache.commons.lang.ArrayUtils;
 
 /**
@@ -373,12 +375,7 @@ public class ByteBufferUtil
     public static ByteBuffer skipShortLength(DataInput in) throws IOException
     {
         int skip = readShortLength(in);
-        while (skip > 0)
-        {
-            int skipped = in.skipBytes(skip);
-            if (skipped == 0) throw new EOFException();
-            skip -= skipped;
-        }
+        FileUtils.skipBytesFully(in, skip);
         return null;
     }
 


Reply via email to