merge from 1.1

Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a1b601e4
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a1b601e4
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a1b601e4

Branch: refs/heads/cassandra-1.2
Commit: a1b601e435a3dc97b46bad32cb4060ba063c5718
Parents: 1b41d6f ccdb632
Author: Jonathan Ellis <jbel...@apache.org>
Authored: Thu Jan 10 12:52:01 2013 -0600
Committer: Jonathan Ellis <jbel...@apache.org>
Committed: Thu Jan 10 12:52:01 2013 -0600

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../apache/cassandra/thrift/ThriftValidation.java  |    7 +++----
 2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/a1b601e4/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 5100c1a,58dbc7b..63c0b1d
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,39 -1,11 +1,40 @@@
 -1.1.9
 +1.2.1
++ * re-allow wrapping ranges for start_token/end_token range pairing 
(CASSANDRA-5106)
 + * fix validation compaction of empty rows (CASSADRA-5136)
 + * nodetool methods to enable/disable hint storage/delivery (CASSANDRA-4750)
 + * disallow bloom filter false positive chance of 0 (CASSANDRA-5013)
 + * add threadpool size adjustment methods to JMXEnabledThreadPoolExecutor and 
 +   CompactionManagerMBean (CASSANDRA-5044)
 + * fix hinting for dropped local writes (CASSANDRA-4753)
 + * off-heap cache doesn't need mutable column container (CASSANDRA-5057)
 + * apply disk_failure_policy to bad disks on initial directory creation 
 +   (CASSANDRA-4847)
 + * Optimize name-based queries to use ArrayBackedSortedColumns 
(CASSANDRA-5043)
 + * Fall back to old manifest if most recent is unparseable (CASSANDRA-5041)
 + * pool [Compressed]RandomAccessReader objects on the partitioned read path
 +   (CASSANDRA-4942)
 + * Add debug logging to list filenames processed by Directories.migrateFile 
 +   method (CASSANDRA-4939)
 + * Expose black-listed directories via JMX (CASSANDRA-4848)
 + * Log compaction merge counts (CASSANDRA-4894)
 + * Minimize byte array allocation by AbstractData{Input,Output} 
(CASSANDRA-5090)
 + * Add SSL support for the binary protocol (CASSANDRA-5031)
 + * Allow non-schema system ks modification for shuffle to work 
(CASSANDRA-5097)
 + * cqlsh: Add default limit to SELECT statements (CASSANDRA-4972)
 + * cqlsh: fix DESCRIBE for 1.1 cfs in CQL3 (CASSANDRA-5101)
 + * Correctly gossip with nodes >= 1.1.7 (CASSANDRA-5102)
 + * Ensure CL guarantees on digest mismatch (CASSANDRA-5113)
 + * Validate correctly selects on composite partition key (CASSANDRA-5122)
 + * Fix exception when adding collection (CASSANDRA-5117)
 + * Handle states for non-vnode clusters correctly (CASSANDRA-5127)
 + * Refuse unrecognized replication strategy options (CASSANDRA-4795)
 + * Pick the correct value validator in sstable2json for cql3 tables 
(CASSANDRA-5134)
 +Merged from 1.1:
   * Simplify CompressedRandomAccessReader to work around JDK FD bug 
(CASSANDRA-5088)
   * Improve handling a changing target throttle rate mid-compaction 
(CASSANDRA-5087)
 - * fix multithreaded compaction deadlock (CASSANDRA-4492)
 - * fix specifying and altering crc_check_chance (CASSANDRA-5053)
 - * Don't expire columns sooner than they should in 2ndary indexes 
(CASSANDRA-5079)
   * Pig: correctly decode row keys in widerow mode (CASSANDRA-5098)
   * nodetool repair command now prints progress (CASSANDRA-4767)
 + * Ensure Jackson dependency matches lib (CASSANDRA-5126)
   * fix user defined compaction to run against 1.1 data directory 
(CASSANDRA-5118)
  
  

http://git-wip-us.apache.org/repos/asf/cassandra/blob/a1b601e4/src/java/org/apache/cassandra/thrift/ThriftValidation.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/thrift/ThriftValidation.java
index c0702b2,bc64018..eebc378
--- a/src/java/org/apache/cassandra/thrift/ThriftValidation.java
+++ b/src/java/org/apache/cassandra/thrift/ThriftValidation.java
@@@ -476,18 -502,17 +476,17 @@@ public class ThriftValidatio
              if (startToken.compareTo(endToken) > 0 && !endToken.isMinimum(p))
              {
                  if (p.preservesOrder())
 -                    throw new InvalidRequestException("start key must sort 
before (or equal to) finish key in your partitioner!");
 +                    throw new 
org.apache.cassandra.exceptions.InvalidRequestException("start key must sort 
before (or equal to) finish key in your partitioner!");
                  else
 -                    throw new InvalidRequestException("start key's md5 sorts 
after end key's md5.  this is not allowed; you probably should not specify end 
key at all, under RandomPartitioner");
 +                    throw new 
org.apache.cassandra.exceptions.InvalidRequestException("start key's token 
sorts after end key's token.  this is not allowed; you probably should not 
specify end key at all except with an ordered partitioner");
              }
          }
-         else if (range.end_token != null)
+         else if (range.start_key != null && range.end_token != null)
          {
+             // start_token/end_token can wrap, but key/token should not
              RowPosition stop = 
p.getTokenFactory().fromString(range.end_token).maxKeyBound(p);
-             if (range.start_key != null && 
RowPosition.forKey(range.start_key, p).compareTo(stop) > 0)
+             if (RowPosition.forKey(range.start_key, p).compareTo(stop) > 0)
 -                throw new InvalidRequestException("Start key's token sorts 
after end token");
 +                throw new 
org.apache.cassandra.exceptions.InvalidRequestException("Start key's token 
sorts after end token");
-             if (range.start_token != null && 
p.getTokenFactory().fromString(range.start_token).maxKeyBound(p).compareTo(stop)
 > 0)
-                 throw new 
org.apache.cassandra.exceptions.InvalidRequestException("Start token sorts 
after end token");
          }
  
          validateFilterClauses(metadata, range.row_filter);

Reply via email to