Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 916E5E7AA for ; Thu, 27 Dec 2012 20:45:45 +0000 (UTC) Received: (qmail 70836 invoked by uid 500); 27 Dec 2012 20:45:44 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 70767 invoked by uid 500); 27 Dec 2012 20:45:44 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 70377 invoked by uid 99); 27 Dec 2012 20:45:43 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Dec 2012 20:45:43 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 3B94E820998; Thu, 27 Dec 2012 20:45:43 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jbellis@apache.org To: commits@cassandra.apache.org X-Mailer: ASF-Git Admin Mailer Subject: [5/10] git commit: Merge branch 'cassandra-1.1' into cassandra-1.2.0 Message-Id: <20121227204543.3B94E820998@tyr.zones.apache.org> Date: Thu, 27 Dec 2012 20:45:43 +0000 (UTC) Merge branch 'cassandra-1.1' into cassandra-1.2.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4b9d927d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4b9d927d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4b9d927d Branch: refs/heads/cassandra-1.2 Commit: 4b9d927d3afd66581ca5e232e3c4ef76f5aaab98 Parents: 65b377f 8a3b291 Author: Jonathan Ellis Authored: Thu Dec 27 15:41:32 2012 -0500 Committer: Jonathan Ellis Committed: Thu Dec 27 15:43:54 2012 -0500 ---------------------------------------------------------------------- .../apache/cassandra/thrift/ThriftValidation.java | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4b9d927d/src/java/org/apache/cassandra/thrift/ThriftValidation.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/thrift/ThriftValidation.java index 3912e82,de1ce56..6473acd --- a/src/java/org/apache/cassandra/thrift/ThriftValidation.java +++ b/src/java/org/apache/cassandra/thrift/ThriftValidation.java @@@ -465,21 -491,30 +465,30 @@@ public class ThriftValidatio // (key, token) is supported (for wide-row CFRR) but not (token, key) if (range.start_token != null && range.end_key != null) - throw new InvalidRequestException("start token + end key is not a supported key range"); + throw new org.apache.cassandra.exceptions.InvalidRequestException("start token + end key is not a supported key range"); + IPartitioner p = StorageService.getPartitioner(); + if (range.start_key != null && range.end_key != null) { - IPartitioner p = StorageService.getPartitioner(); Token startToken = p.getToken(range.start_key); Token endToken = p.getToken(range.end_key); if (startToken.compareTo(endToken) > 0 && !endToken.isMinimum(p)) { if (p instanceof RandomPartitioner) - 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 md5 sorts after end key's md5. this is not allowed; you probably should not specify end key at all, under RandomPartitioner"); else - 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 if (range.end_token != null) + { + RowPosition stop = p.getTokenFactory().fromString(range.end_token).maxKeyBound(p); + if (range.start_key != null && 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 InvalidRequestException("Start token sorts after end token"); ++ throw new org.apache.cassandra.exceptions.InvalidRequestException("Start token sorts after end token"); + } validateFilterClauses(metadata, range.row_filter);