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;
}