You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2012/09/05 17:51:59 UTC
[1/6] git commit: Finer grained exception hierarchy,
and adds error codes
Updated Branches:
refs/heads/trunk 00e715054 -> 3a2faf942
Finer grained exception hierarchy, and adds error codes
patch by slebresne; reviewed by thepaul for CASSANDRA-3979
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3a2faf94
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3a2faf94
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3a2faf94
Branch: refs/heads/trunk
Commit: 3a2faf9424769cfee5fdad25f4513611820ca980
Parents: 00e7150
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Wed Aug 1 08:40:50 2012 +0200
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Wed Sep 5 17:50:59 2012 +0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
doc/native_protocol.spec | 80 ++-
.../apache/cassandra/auth/SimpleAuthenticator.java | 2 +-
.../org/apache/cassandra/auth/SimpleAuthority.java | 2 +-
.../cassandra/auth/AllowAllAuthenticator.java | 2 +-
.../apache/cassandra/auth/AllowAllAuthority.java | 2 +-
.../org/apache/cassandra/auth/IAuthenticator.java | 2 +-
src/java/org/apache/cassandra/auth/IAuthority.java | 2 +-
src/java/org/apache/cassandra/cli/CliClient.java | 6 +-
src/java/org/apache/cassandra/config/Avro.java | 4 +-
.../org/apache/cassandra/config/CFMetaData.java | 71 +-
.../apache/cassandra/config/ColumnDefinition.java | 7 +-
.../cassandra/config/ConfigurationException.java | 31 -
.../cassandra/config/DatabaseDescriptor.java | 1 +
.../org/apache/cassandra/config/KSMetaData.java | 1 +
.../apache/cassandra/cql/AbstractModification.java | 9 +-
.../apache/cassandra/cql/AlterTableStatement.java | 6 +-
src/java/org/apache/cassandra/cql/Attributes.java | 2 +-
.../org/apache/cassandra/cql/BatchStatement.java | 7 +-
src/java/org/apache/cassandra/cql/CFPropDefs.java | 9 +-
src/java/org/apache/cassandra/cql/Cql.g | 14 +-
.../cassandra/cql/CreateColumnFamilyStatement.java | 19 +-
.../cassandra/cql/CreateKeyspaceStatement.java | 2 +-
.../org/apache/cassandra/cql/DeleteStatement.java | 9 +-
.../apache/cassandra/cql/DropIndexStatement.java | 3 +-
.../org/apache/cassandra/cql/QueryProcessor.java | 76 +--
.../org/apache/cassandra/cql/SelectStatement.java | 2 +-
src/java/org/apache/cassandra/cql/Term.java | 2 +-
.../org/apache/cassandra/cql/UpdateStatement.java | 14 +-
src/java/org/apache/cassandra/cql3/Attributes.java | 2 +-
.../org/apache/cassandra/cql3/CFDefinition.java | 2 +-
src/java/org/apache/cassandra/cql3/CFPropDefs.java | 2 +-
.../org/apache/cassandra/cql3/CQLStatement.java | 10 +-
.../apache/cassandra/cql3/ColumnNameBuilder.java | 2 +-
src/java/org/apache/cassandra/cql3/Cql.g | 21 +-
src/java/org/apache/cassandra/cql3/ParsedType.java | 9 +-
.../org/apache/cassandra/cql3/QueryProcessor.java | 32 +-
src/java/org/apache/cassandra/cql3/Term.java | 4 +-
.../cassandra/cql3/operations/ColumnOperation.java | 2 +-
.../cassandra/cql3/operations/ListOperation.java | 2 +-
.../cassandra/cql3/operations/MapOperation.java | 2 +-
.../cassandra/cql3/operations/Operation.java | 2 +-
.../cassandra/cql3/operations/SetOperation.java | 2 +-
.../cql3/statements/AlterTableStatement.java | 2 +-
.../cassandra/cql3/statements/BatchStatement.java | 9 +-
.../cassandra/cql3/statements/CFStatement.java | 2 +-
.../statements/CreateColumnFamilyStatement.java | 267 ++++----
.../cql3/statements/CreateIndexStatement.java | 4 +-
.../cql3/statements/CreateKeyspaceStatement.java | 25 +-
.../cassandra/cql3/statements/DeleteStatement.java | 6 +-
.../cql3/statements/DropColumnFamilyStatement.java | 2 +-
.../cql3/statements/DropIndexStatement.java | 2 +-
.../cql3/statements/DropKeyspaceStatement.java | 6 +-
.../cql3/statements/ModificationStatement.java | 30 +-
.../cassandra/cql3/statements/ParsedStatement.java | 4 +-
.../cql3/statements/SchemaAlteringStatement.java | 15 +-
.../cassandra/cql3/statements/SelectStatement.java | 48 +-
.../cql3/statements/TruncateStatement.java | 15 +-
.../cassandra/cql3/statements/UpdateStatement.java | 9 +-
.../cassandra/cql3/statements/UseStatement.java | 2 +-
.../org/apache/cassandra/db/ColumnFamilyStore.java | 1 +
.../cassandra/db/ColumnFamilyStoreMBean.java | 2 +-
.../org/apache/cassandra/db/ConsistencyLevel.java | 114 +++
.../org/apache/cassandra/db/CounterColumn.java | 9 +-
.../org/apache/cassandra/db/CounterMutation.java | 2 +-
.../cassandra/db/CounterMutationVerbHandler.java | 16 +-
src/java/org/apache/cassandra/db/DefsTable.java | 1 +
.../apache/cassandra/db/HintedHandOffManager.java | 5 +-
.../cassandra/db/KeyspaceNotDefinedException.java | 2 +-
.../org/apache/cassandra/db/RangeSliceCommand.java | 10 +-
src/java/org/apache/cassandra/db/SystemTable.java | 2 +-
src/java/org/apache/cassandra/db/Table.java | 1 +
.../apache/cassandra/db/index/SecondaryIndex.java | 2 +-
.../cassandra/db/index/SecondaryIndexManager.java | 2 +-
.../db/index/composites/CompositesIndex.java | 2 +-
.../apache/cassandra/db/index/keys/KeysIndex.java | 2 +-
.../apache/cassandra/db/marshal/AbstractType.java | 4 +-
.../db/marshal/ColumnToCollectionType.java | 5 +-
.../apache/cassandra/db/marshal/CompositeType.java | 7 +-
.../cassandra/db/marshal/DynamicCompositeType.java | 17 +-
.../org/apache/cassandra/db/marshal/ListType.java | 5 +-
.../org/apache/cassandra/db/marshal/MapType.java | 5 +-
.../apache/cassandra/db/marshal/ReversedType.java | 5 +-
.../org/apache/cassandra/db/marshal/SetType.java | 5 +-
.../apache/cassandra/db/marshal/TypeParser.java | 44 +-
.../dht/AbstractByteOrderedPartitioner.java | 1 +
.../org/apache/cassandra/dht/BootStrapper.java | 3 +-
.../apache/cassandra/dht/Murmur3Partitioner.java | 2 +-
.../cassandra/dht/OrderPreservingPartitioner.java | 1 +
.../apache/cassandra/dht/RandomPartitioner.java | 2 +-
src/java/org/apache/cassandra/dht/Token.java | 2 +-
.../exceptions/AlreadyExistsException.java | 42 ++
.../cassandra/exceptions/CassandraException.java | 42 ++
.../exceptions/ConfigurationException.java | 36 +
.../apache/cassandra/exceptions/ExceptionCode.java | 68 ++
.../exceptions/InvalidRequestException.java | 26 +
.../exceptions/IsBootstrappingException.java | 26 +
.../cassandra/exceptions/OverloadedException.java | 26 +
.../cassandra/exceptions/ReadTimeoutException.java | 36 +
.../exceptions/RequestExecutionException.java | 33 +
.../exceptions/RequestTimeoutException.java | 40 ++
.../exceptions/RequestValidationException.java | 31 +
.../cassandra/exceptions/SyntaxException.java | 26 +
.../cassandra/exceptions/TransportException.java | 33 +
.../cassandra/exceptions/TruncateException.java | 31 +
.../exceptions/UnauthorizedException.java | 26 +
.../cassandra/exceptions/UnavailableException.java | 40 ++
.../exceptions/WriteTimeoutException.java | 32 +
.../cassandra/hadoop/ColumnFamilyRecordReader.java | 2 +-
.../org/apache/cassandra/hadoop/ConfigHelper.java | 2 +-
.../cassandra/hadoop/pig/CassandraStorage.java | 11 +-
.../cassandra/io/compress/CompressionMetadata.java | 2 +-
.../io/compress/CompressionParameters.java | 2 +-
.../apache/cassandra/io/sstable/SSTableLoader.java | 2 +-
.../locator/AbstractReplicationStrategy.java | 4 +-
.../cassandra/locator/Ec2MultiRegionSnitch.java | 2 +-
.../org/apache/cassandra/locator/Ec2Snitch.java | 2 +-
.../locator/GossipingPropertyFileSnitch.java | 2 +-
.../apache/cassandra/locator/LocalStrategy.java | 2 +-
.../cassandra/locator/NetworkTopologyStrategy.java | 2 +-
.../locator/OldNetworkTopologyStrategy.java | 2 +-
.../cassandra/locator/PropertyFileSnitch.java | 2 +-
.../apache/cassandra/locator/SimpleStrategy.java | 2 +-
.../org/apache/cassandra/net/MessagingService.java | 2 +-
.../service/AbstractWriteResponseHandler.java | 14 +-
.../apache/cassandra/service/CassandraDaemon.java | 2 +-
.../org/apache/cassandra/service/ClientState.java | 25 +-
.../cassandra/service/DatacenterReadCallback.java | 13 +-
.../DatacenterSyncWriteResponseHandler.java | 13 +-
.../service/DatacenterWriteResponseHandler.java | 14 +-
.../cassandra/service/IWriteResponseHandler.java | 6 +-
.../apache/cassandra/service/MigrationManager.java | 7 +-
.../apache/cassandra/service/MigrationTask.java | 2 +-
.../org/apache/cassandra/service/ReadCallback.java | 41 +-
.../apache/cassandra/service/RepairCallback.java | 2 +-
.../org/apache/cassandra/service/StorageProxy.java | 80 ++-
.../apache/cassandra/service/StorageService.java | 7 +-
.../cassandra/service/StorageServiceMBean.java | 8 +-
.../cassandra/service/WriteResponseHandler.java | 30 +-
.../apache/cassandra/thrift/CassandraServer.java | 547 +++++++++------
.../apache/cassandra/thrift/ThriftConversion.java | 92 +++
.../apache/cassandra/thrift/ThriftValidation.java | 222 +++----
src/java/org/apache/cassandra/tools/NodeCmd.java | 6 +-
src/java/org/apache/cassandra/tools/NodeProbe.java | 4 +-
.../org/apache/cassandra/tools/SSTableExport.java | 2 +-
.../org/apache/cassandra/tools/SSTableImport.java | 2 +-
.../cassandra/tools/SSTableMetadataViewer.java | 2 +-
src/java/org/apache/cassandra/tracing/Tracing.java | 8 +-
.../apache/cassandra/tracing/TracingAppender.java | 6 +-
.../org/apache/cassandra/transport/DataType.java | 4 +-
.../cassandra/transport/ProtocolException.java | 14 +-
.../apache/cassandra/transport/ServerError.java | 44 ++
.../apache/cassandra/transport/SimpleClient.java | 2 +-
.../cassandra/transport/messages/ErrorMessage.java | 158 ++++-
.../transport/messages/ExecuteMessage.java | 2 +-
.../cassandra/transport/messages/QueryMessage.java | 8 +-
.../transport/messages/StartupMessage.java | 8 +-
.../org/apache/cassandra/utils/FBUtilities.java | 2 +-
.../apache/cassandra/db/MeteredFlusherTest.java | 2 +-
test/unit/org/apache/cassandra/SchemaLoader.java | 1 +
test/unit/org/apache/cassandra/cli/CliTest.java | 2 +-
.../cassandra/config/DatabaseDescriptorTest.java | 3 +-
.../unit/org/apache/cassandra/config/DefsTest.java | 1 +
test/unit/org/apache/cassandra/db/CleanupTest.java | 2 +-
.../apache/cassandra/db/ColumnFamilyStoreTest.java | 2 +-
test/unit/org/apache/cassandra/db/ScrubTest.java | 2 +-
.../cassandra/db/SecondaryIndexColumnSizeTest.java | 2 +-
.../cassandra/db/marshal/CompositeTypeTest.java | 5 +-
.../cassandra/db/marshal/TypeParserTest.java | 9 +-
.../locator/DynamicEndpointSnitchTest.java | 2 +-
.../apache/cassandra/locator/EC2SnitchTest.java | 2 +-
.../locator/NetworkTopologyStrategyTest.java | 2 +-
.../ReplicationStrategyEndpointCacheTest.java | 2 +-
.../cassandra/locator/SimpleStrategyTest.java | 2 +-
.../service/AntiEntropyServiceCounterTest.java | 2 +-
.../service/EmbeddedCassandraServiceTest.java | 2 +-
.../apache/cassandra/service/InitClientTest.java | 2 +-
.../cassandra/service/LeaveAndBootstrapTest.java | 2 +-
.../org/apache/cassandra/service/MoveTest.java | 2 +-
.../org/apache/cassandra/service/RemoveTest.java | 2 +-
.../service/StorageServiceClientTest.java | 2 +-
.../service/StorageServiceServerTest.java | 2 +-
.../cassandra/thrift/ThriftValidationTest.java | 7 +-
.../src/org/apache/cassandra/stress/Session.java | 5 +-
184 files changed, 2187 insertions(+), 1127 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 291905f..8125e38 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -47,6 +47,7 @@
* remove schema agreement checking from all external APIs (Thrift, CQL and CQL3) (CASSANDRA-4487)
* add Murmur3Partitioner and make it default for new installations (CASSANDRA-3772)
* (cql3) update pseudo-map syntax to use map syntax (CASSANDRA-4497)
+ * Finer grained exceptions hierarchy and provides error code with exceptions (CASSANDRA-3979)
1.1.5
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/doc/native_protocol.spec
----------------------------------------------------------------------
diff --git a/doc/native_protocol.spec b/doc/native_protocol.spec
index 9c30db9..d19963b 100644
--- a/doc/native_protocol.spec
+++ b/doc/native_protocol.spec
@@ -255,8 +255,9 @@ Table of Contents
4.2.1. ERROR
Indicates an error processing a request. The body of the message will be an
- error code ([int]) followed by a [string] error message. The error codes are
- defined in Section 6.
+ error code ([int]) followed by a [string] error message. Then, depending on
+ the exception, more content may follow. The error codes are defined in
+ Section 6, along with their additional content if any.
4.2.2. READY
@@ -404,11 +405,70 @@ Table of Contents
6. Error codes
- The currently supported errors are:
- 0x0000 Server error
- 0x0001 Protocol error
- 0x0002 Authentication error
- 0x0100 Unavailable exception
- 0x0101 Timeout exception
- 0x0102 Schema disagreement exception
- 0x0200 Request exception
+ The supported error codes are described below:
+ 0x0000 Server error: something unexpected happened. This indicates a
+ server-side bug.
+ 0x000A Protocol error: some client message triggered a protocol
+ violation (for instance a QUERY message is sent before a STARTUP
+ one has been sent)
+
+ 0x1000 Unavailable exception. The rest of the ERROR message body will be
+ <cl><required><alive>
+ where:
+ <cl> is a [string] representing the consistency level of the
+ query having triggered the exception.
+ <required> is an [int] representing the number of node that
+ should be alive to respect <cl>
+ <alive> is an [int] representing the number of replica that
+ were known to be alive when the request has been
+ processed (since an unavailable exception has been
+ triggered, there will be <alive> < <required>)
+ 0x1001 Overloaded: the request cannot be processed because the
+ coordinator node is overloaded
+ 0x1002 Is_bootstrapping: the request was a read request but the
+ coordinator node is bootstrapping
+ 0x1003 Truncate_error: error during a truncation error.
+ 0x1100 Write_timeout: Timeout exception during a write request. The rest
+ of the ERROR message body will be
+ <cl><received><blockfor>
+ where:
+ <cl> is a [string] representing the consistency level of the
+ query having triggered the exception.
+ <received> is an [int] representing the number of nodes having
+ acknowledged the request.
+ <blockfor> is the number of replica whose acknowledgement is
+ required to achieve <cl>.
+ 0x1200 Read_timeout: Timeout exception during a read request. The rest
+ of the ERROR message body will be
+ <cl><received><blockfor><data_present>
+ where:
+ <cl> is a [string] representing the consistency level of the
+ query having triggered the exception.
+ <received> is an [int] representing the number of nodes having
+ answered the request.
+ <blockfor> is the number of replica whose response is
+ required to achieve <cl>. Please note that it is
+ possible to have <received> >= <blockfor> if
+ <data_present> is false. And also in the (unlikely)
+ case were <cl> is achieved but the coordinator node
+ timeout while waiting for read-repair
+ acknowledgement.
+ <data_present> is a single byte. If its value is 0, it means
+ the replica that was asked for data has not
+ responded. Otherwise, the value is != 0.
+
+ 0x2000 Syntax_error: The submitted query has a syntax error.
+ 0x2100 Unauthorized: The logged user doesn't have the right to perform
+ the query.
+ 0x2200 Invalid: The query is syntactically correct but invalid.
+ 0x2300 Config_error: The query is invalid because of some configuration issue
+ 0x2400 Already_exists: The query attempted to create a keyspace or a
+ table that was already existing. The rest of the ERROR message
+ body will be <ks><table> where:
+ <ks> is a [string] representing either the keyspace that
+ already exists, or the keyspace in which the table that
+ already exists is.
+ <table> is a [string] representing the name of the table that
+ already exists. If the query was attempting to create a
+ keyspace, <table> will be present but will be the empty
+ string.
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthenticator.java
----------------------------------------------------------------------
diff --git a/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthenticator.java b/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthenticator.java
index c8d63b7..357a465 100644
--- a/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthenticator.java
+++ b/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthenticator.java
@@ -29,7 +29,7 @@ import java.security.MessageDigest;
import java.util.Map;
import java.util.Properties;
-import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.io.util.FileUtils;
import org.apache.cassandra.thrift.AuthenticationException;
import org.apache.cassandra.utils.FBUtilities;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthority.java
----------------------------------------------------------------------
diff --git a/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthority.java b/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthority.java
index 6127370..88814ec 100644
--- a/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthority.java
+++ b/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthority.java
@@ -29,7 +29,7 @@ import java.util.EnumSet;
import java.util.List;
import java.util.Properties;
-import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.io.util.FileUtils;
public class SimpleAuthority implements IAuthority
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java b/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java
index 238dac4..af88372 100644
--- a/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java
+++ b/src/java/org/apache/cassandra/auth/AllowAllAuthenticator.java
@@ -19,7 +19,7 @@ package org.apache.cassandra.auth;
import java.util.Map;
-import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.thrift.AuthenticationException;
public class AllowAllAuthenticator implements IAuthenticator
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/auth/AllowAllAuthority.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/auth/AllowAllAuthority.java b/src/java/org/apache/cassandra/auth/AllowAllAuthority.java
index afa6dd4..5a6f86d 100644
--- a/src/java/org/apache/cassandra/auth/AllowAllAuthority.java
+++ b/src/java/org/apache/cassandra/auth/AllowAllAuthority.java
@@ -20,7 +20,7 @@ package org.apache.cassandra.auth;
import java.util.EnumSet;
import java.util.List;
-import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.exceptions.ConfigurationException;
public class AllowAllAuthority implements IAuthority
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/auth/IAuthenticator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/auth/IAuthenticator.java b/src/java/org/apache/cassandra/auth/IAuthenticator.java
index 3d0d683..4f50383 100644
--- a/src/java/org/apache/cassandra/auth/IAuthenticator.java
+++ b/src/java/org/apache/cassandra/auth/IAuthenticator.java
@@ -19,7 +19,7 @@ package org.apache.cassandra.auth;
import java.util.Map;
-import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.thrift.AuthenticationException;
public interface IAuthenticator
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/auth/IAuthority.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/auth/IAuthority.java b/src/java/org/apache/cassandra/auth/IAuthority.java
index 2ece320..5bbdbe1 100644
--- a/src/java/org/apache/cassandra/auth/IAuthority.java
+++ b/src/java/org/apache/cassandra/auth/IAuthority.java
@@ -20,7 +20,7 @@ package org.apache.cassandra.auth;
import java.util.EnumSet;
import java.util.List;
-import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.exceptions.ConfigurationException;
/**
* Cassandra's resource hierarchy looks something like:
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cli/CliClient.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cli/CliClient.java b/src/java/org/apache/cassandra/cli/CliClient.java
index bedcc59..090bef5 100644
--- a/src/java/org/apache/cassandra/cli/CliClient.java
+++ b/src/java/org/apache/cassandra/cli/CliClient.java
@@ -34,7 +34,7 @@ import org.apache.commons.lang.StringUtils;
import org.antlr.runtime.tree.Tree;
import org.apache.cassandra.auth.IAuthenticator;
-import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.exceptions.RequestValidationException;
import org.apache.cassandra.db.ColumnFamilyStoreMBean;
import org.apache.cassandra.db.compaction.CompactionManagerMBean;
import org.apache.cassandra.db.compaction.OperationType;
@@ -547,7 +547,7 @@ public class CliClient
{
return TypeParser.parse(compareWith);
}
- catch (ConfigurationException ce)
+ catch (RequestValidationException ce)
{
StringBuilder errorMessage = new StringBuilder("Unknown comparator '" + compareWith + "'. ");
errorMessage.append("Available functions: ");
@@ -1545,7 +1545,7 @@ public class CliClient
{
comparator = TypeParser.parse(defaultType);
}
- catch (ConfigurationException e)
+ catch (RequestValidationException e)
{
try
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/config/Avro.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/Avro.java b/src/java/org/apache/cassandra/config/Avro.java
index ed914f2..a7498d3 100644
--- a/src/java/org/apache/cassandra/config/Avro.java
+++ b/src/java/org/apache/cassandra/config/Avro.java
@@ -26,6 +26,8 @@ import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.BytesType;
import org.apache.cassandra.db.marshal.TypeParser;
import org.apache.cassandra.db.migration.avro.CfDef;
+import org.apache.cassandra.exceptions.ConfigurationException;
+import org.apache.cassandra.exceptions.RequestValidationException;
import org.apache.cassandra.io.compress.CompressionParameters;
import org.apache.cassandra.locator.AbstractReplicationStrategy;
import org.apache.cassandra.locator.NetworkTopologyStrategy;
@@ -211,7 +213,7 @@ public class Avro
AbstractType<?> validatorType = TypeParser.parse(cd.validation_class);
return new ColumnDefinition(ByteBufferUtil.clone(cd.name), validatorType, index_type, ColumnDefinition.getStringMap(cd.index_options), index_name, null);
}
- catch (ConfigurationException e)
+ catch (RequestValidationException e)
{
throw new RuntimeException(e);
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index dbe0c6f..d410210 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -40,11 +40,14 @@ import org.apache.cassandra.db.*;
import org.apache.cassandra.db.compaction.AbstractCompactionStrategy;
import org.apache.cassandra.db.index.SecondaryIndex;
import org.apache.cassandra.db.marshal.*;
+import org.apache.cassandra.exceptions.ConfigurationException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
+import org.apache.cassandra.exceptions.RequestValidationException;
+import org.apache.cassandra.exceptions.SyntaxException;
import org.apache.cassandra.io.IColumnSerializer;
import org.apache.cassandra.io.compress.CompressionParameters;
import org.apache.cassandra.io.compress.SnappyCompressor;
import org.apache.cassandra.thrift.IndexType;
-import org.apache.cassandra.thrift.InvalidRequestException;
import org.apache.cassandra.tracing.Tracing;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.FBUtilities;
@@ -287,11 +290,7 @@ public final class CFMetaData
statement.applyPropertiesTo(cfmd);
return cfmd;
}
- catch (InvalidRequestException e)
- {
- throw new RuntimeException(e);
- }
- catch (ConfigurationException e)
+ catch (RequestValidationException e)
{
throw new RuntimeException(e);
}
@@ -658,34 +657,34 @@ public final class CFMetaData
applyImplicitDefaults(cf_def);
- CFMetaData newCFMD = new CFMetaData(cf_def.keyspace,
- cf_def.name,
- cfType,
- TypeParser.parse(cf_def.comparator_type),
- cf_def.subcomparator_type == null ? null : TypeParser.parse(cf_def.subcomparator_type));
-
- if (cf_def.isSetGc_grace_seconds()) { newCFMD.gcGraceSeconds(cf_def.gc_grace_seconds); }
- if (cf_def.isSetMin_compaction_threshold()) { newCFMD.minCompactionThreshold(cf_def.min_compaction_threshold); }
- if (cf_def.isSetMax_compaction_threshold()) { newCFMD.maxCompactionThreshold(cf_def.max_compaction_threshold); }
- if (cf_def.isSetKey_alias()) { newCFMD.keyAliases(Collections.<ByteBuffer>singletonList(cf_def.key_alias)); }
- if (cf_def.isSetKey_validation_class()) { newCFMD.keyValidator(TypeParser.parse(cf_def.key_validation_class)); }
- if (cf_def.isSetCompaction_strategy())
- newCFMD.compactionStrategyClass = createCompactionStrategy(cf_def.compaction_strategy);
- if (cf_def.isSetCompaction_strategy_options())
- newCFMD.compactionStrategyOptions(new HashMap<String, String>(cf_def.compaction_strategy_options));
- if (cf_def.isSetBloom_filter_fp_chance())
- newCFMD.bloomFilterFpChance(cf_def.bloom_filter_fp_chance);
- if (cf_def.isSetCaching())
- newCFMD.caching(Caching.fromString(cf_def.caching));
- if (cf_def.isSetRead_repair_chance())
- newCFMD.readRepairChance(cf_def.read_repair_chance);
- if (cf_def.isSetDclocal_read_repair_chance())
- newCFMD.dcLocalReadRepairChance(cf_def.dclocal_read_repair_chance);
-
- CompressionParameters cp = CompressionParameters.create(cf_def.compression_options);
-
try
{
+ CFMetaData newCFMD = new CFMetaData(cf_def.keyspace,
+ cf_def.name,
+ cfType,
+ TypeParser.parse(cf_def.comparator_type),
+ cf_def.subcomparator_type == null ? null : TypeParser.parse(cf_def.subcomparator_type));
+
+ if (cf_def.isSetGc_grace_seconds()) { newCFMD.gcGraceSeconds(cf_def.gc_grace_seconds); }
+ if (cf_def.isSetMin_compaction_threshold()) { newCFMD.minCompactionThreshold(cf_def.min_compaction_threshold); }
+ if (cf_def.isSetMax_compaction_threshold()) { newCFMD.maxCompactionThreshold(cf_def.max_compaction_threshold); }
+ if (cf_def.isSetKey_alias()) { newCFMD.keyAliases(Collections.<ByteBuffer>singletonList(cf_def.key_alias)); }
+ if (cf_def.isSetKey_validation_class()) { newCFMD.keyValidator(TypeParser.parse(cf_def.key_validation_class)); }
+ if (cf_def.isSetCompaction_strategy())
+ newCFMD.compactionStrategyClass = createCompactionStrategy(cf_def.compaction_strategy);
+ if (cf_def.isSetCompaction_strategy_options())
+ newCFMD.compactionStrategyOptions(new HashMap<String, String>(cf_def.compaction_strategy_options));
+ if (cf_def.isSetBloom_filter_fp_chance())
+ newCFMD.bloomFilterFpChance(cf_def.bloom_filter_fp_chance);
+ if (cf_def.isSetCaching())
+ newCFMD.caching(Caching.fromString(cf_def.caching));
+ if (cf_def.isSetRead_repair_chance())
+ newCFMD.readRepairChance(cf_def.read_repair_chance);
+ if (cf_def.isSetDclocal_read_repair_chance())
+ newCFMD.dcLocalReadRepairChance(cf_def.dclocal_read_repair_chance);
+
+ CompressionParameters cp = CompressionParameters.create(cf_def.compression_options);
+
return newCFMD.comment(cf_def.comment)
.replicateOnWrite(cf_def.replicate_on_write)
.defaultValidator(TypeParser.parse(cf_def.default_validation_class))
@@ -693,6 +692,10 @@ public final class CFMetaData
.columnMetadata(ColumnDefinition.fromThrift(cf_def.column_metadata))
.compressionParameters(cp);
}
+ catch (SyntaxException e)
+ {
+ throw new ConfigurationException(e.getMessage());
+ }
catch (MarshalException e)
{
throw new ConfigurationException(e.getMessage());
@@ -1301,6 +1304,10 @@ public final class CFMetaData
return cfm;
}
+ catch (SyntaxException e)
+ {
+ throw new RuntimeException(e);
+ }
catch (ConfigurationException e)
{
throw new RuntimeException(e);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/config/ColumnDefinition.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/ColumnDefinition.java b/src/java/org/apache/cassandra/config/ColumnDefinition.java
index 677ddb8..328d0ff 100644
--- a/src/java/org/apache/cassandra/config/ColumnDefinition.java
+++ b/src/java/org/apache/cassandra/config/ColumnDefinition.java
@@ -27,6 +27,7 @@ import org.apache.cassandra.cql3.UntypedResultSet;
import org.apache.cassandra.db.*;
import org.apache.cassandra.db.filter.QueryPath;
import org.apache.cassandra.db.marshal.*;
+import org.apache.cassandra.exceptions.*;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.thrift.ColumnDef;
import org.apache.cassandra.thrift.IndexType;
@@ -115,7 +116,7 @@ public class ColumnDefinition
return cd;
}
- public static ColumnDefinition fromThrift(ColumnDef thriftColumnDef) throws ConfigurationException
+ public static ColumnDefinition fromThrift(ColumnDef thriftColumnDef) throws SyntaxException, ConfigurationException
{
return new ColumnDefinition(ByteBufferUtil.clone(thriftColumnDef.name),
TypeParser.parse(thriftColumnDef.validation_class),
@@ -125,7 +126,7 @@ public class ColumnDefinition
null);
}
- public static Map<ByteBuffer, ColumnDefinition> fromThrift(List<ColumnDef> thriftDefs) throws ConfigurationException
+ public static Map<ByteBuffer, ColumnDefinition> fromThrift(List<ColumnDef> thriftDefs) throws SyntaxException, ConfigurationException
{
if (thriftDefs == null)
return new HashMap<ByteBuffer,ColumnDefinition>();
@@ -231,7 +232,7 @@ public class ColumnDefinition
index_name,
componentIndex));
}
- catch (ConfigurationException e)
+ catch (RequestValidationException e)
{
throw new RuntimeException(e);
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/config/ConfigurationException.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/ConfigurationException.java b/src/java/org/apache/cassandra/config/ConfigurationException.java
deleted file mode 100644
index c23a522..0000000
--- a/src/java/org/apache/cassandra/config/ConfigurationException.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.cassandra.config;
-
-public class ConfigurationException extends Exception
-{
- public ConfigurationException(String message)
- {
- super(message);
- }
-
- public ConfigurationException(String message, Exception e)
- {
- super(message, e);
- }
-}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index 7533214..467a6c6 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -40,6 +40,7 @@ import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.DefsTable;
import org.apache.cassandra.db.SystemTable;
import org.apache.cassandra.dht.IPartitioner;
+import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.io.FSWriteError;
import org.apache.cassandra.io.util.FileUtils;
import org.apache.cassandra.locator.DynamicEndpointSnitch;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/config/KSMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/KSMetaData.java b/src/java/org/apache/cassandra/config/KSMetaData.java
index ac528f3..5b5ab77 100644
--- a/src/java/org/apache/cassandra/config/KSMetaData.java
+++ b/src/java/org/apache/cassandra/config/KSMetaData.java
@@ -27,6 +27,7 @@ import org.apache.cassandra.cql3.QueryProcessor;
import org.apache.cassandra.cql3.UntypedResultSet;
import org.apache.cassandra.db.*;
import org.apache.cassandra.db.filter.QueryPath;
+import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.locator.*;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.thrift.CfDef;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/AbstractModification.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/AbstractModification.java b/src/java/org/apache/cassandra/cql/AbstractModification.java
index 3d58602..781094f 100644
--- a/src/java/org/apache/cassandra/cql/AbstractModification.java
+++ b/src/java/org/apache/cassandra/cql/AbstractModification.java
@@ -22,8 +22,9 @@ import java.util.List;
import org.apache.cassandra.db.IMutation;
import org.apache.cassandra.service.ClientState;
-import org.apache.cassandra.thrift.ConsistencyLevel;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.db.ConsistencyLevel;
+import org.apache.cassandra.exceptions.InvalidRequestException;
+import org.apache.cassandra.exceptions.UnauthorizedException;
public abstract class AbstractModification
{
@@ -102,7 +103,7 @@ public abstract class AbstractModification
* @throws InvalidRequestException on the wrong request
*/
public abstract List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, List<ByteBuffer> variables)
- throws org.apache.cassandra.thrift.InvalidRequestException;
+ throws InvalidRequestException, UnauthorizedException;
/**
* Convert statement into a list of mutations to apply on the server
@@ -116,5 +117,5 @@ public abstract class AbstractModification
* @throws InvalidRequestException on the wrong request
*/
public abstract List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, Long timestamp, List<ByteBuffer> variables)
- throws org.apache.cassandra.thrift.InvalidRequestException;
+ throws InvalidRequestException, UnauthorizedException;
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/AlterTableStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/AlterTableStatement.java b/src/java/org/apache/cassandra/cql/AlterTableStatement.java
index 85d7619..5210f25 100644
--- a/src/java/org/apache/cassandra/cql/AlterTableStatement.java
+++ b/src/java/org/apache/cassandra/cql/AlterTableStatement.java
@@ -19,8 +19,8 @@ package org.apache.cassandra.cql;
import org.apache.cassandra.config.*;
import org.apache.cassandra.db.marshal.TypeParser;
+import org.apache.cassandra.exceptions.*;
import org.apache.cassandra.io.compress.CompressionParameters;
-import org.apache.cassandra.thrift.InvalidRequestException;
import java.nio.ByteBuffer;
import java.util.HashMap;
@@ -63,7 +63,7 @@ public class AlterTableStatement
}
}
- public CFMetaData getCFMetaData(String keyspace) throws ConfigurationException, InvalidRequestException
+ public CFMetaData getCFMetaData(String keyspace) throws ConfigurationException, InvalidRequestException, SyntaxException
{
CFMetaData meta = Schema.instance.getCFMetaData(keyspace, columnFamily);
CFMetaData cfm = meta.clone();
@@ -171,7 +171,7 @@ public class AlterTableStatement
{
cfm.defaultValidator(cfProps.getValidator());
}
- catch (ConfigurationException e)
+ catch (RequestValidationException e)
{
throw new InvalidRequestException(String.format("Invalid validation type %s",
cfProps.getProperty(CFPropDefs.KW_DEFAULTVALIDATION)));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/Attributes.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/Attributes.java b/src/java/org/apache/cassandra/cql/Attributes.java
index 07c08b1..faee3b8 100644
--- a/src/java/org/apache/cassandra/cql/Attributes.java
+++ b/src/java/org/apache/cassandra/cql/Attributes.java
@@ -17,7 +17,7 @@
*/
package org.apache.cassandra.cql;
-import org.apache.cassandra.thrift.ConsistencyLevel;
+import org.apache.cassandra.db.ConsistencyLevel;
/**
* Class to contain attributes for statements
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/BatchStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/BatchStatement.java b/src/java/org/apache/cassandra/cql/BatchStatement.java
index 6060aeb..95849e7 100644
--- a/src/java/org/apache/cassandra/cql/BatchStatement.java
+++ b/src/java/org/apache/cassandra/cql/BatchStatement.java
@@ -22,9 +22,10 @@ import java.util.LinkedList;
import java.util.List;
import org.apache.cassandra.db.IMutation;
+import org.apache.cassandra.db.ConsistencyLevel;
+import org.apache.cassandra.exceptions.InvalidRequestException;
+import org.apache.cassandra.exceptions.UnauthorizedException;
import org.apache.cassandra.service.ClientState;
-import org.apache.cassandra.thrift.ConsistencyLevel;
-import org.apache.cassandra.thrift.InvalidRequestException;
/**
* A <code>BATCH</code> statement parsed from a CQL query.
@@ -75,7 +76,7 @@ public class BatchStatement
}
public List<IMutation> getMutations(String keyspace, ClientState clientState, List<ByteBuffer> variables)
- throws InvalidRequestException
+ throws InvalidRequestException, UnauthorizedException
{
List<IMutation> batch = new LinkedList<IMutation>();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/CFPropDefs.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/CFPropDefs.java b/src/java/org/apache/cassandra/cql/CFPropDefs.java
index 5cd14be..8771c1b 100644
--- a/src/java/org/apache/cassandra/cql/CFPropDefs.java
+++ b/src/java/org/apache/cassandra/cql/CFPropDefs.java
@@ -19,13 +19,14 @@ package org.apache.cassandra.cql;
import com.google.common.collect.Sets;
import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.db.compaction.AbstractCompactionStrategy;
import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.TypeParser;
+import org.apache.cassandra.exceptions.InvalidRequestException;
+import org.apache.cassandra.exceptions.SyntaxException;
import org.apache.cassandra.io.compress.CompressionParameters;
import org.apache.cassandra.io.compress.SnappyCompressor;
-import org.apache.cassandra.thrift.InvalidRequestException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -204,14 +205,14 @@ public class CFPropDefs {
* knows what they are doing (a custom comparator/validator for example), and pass it on as-is.
*/
- public AbstractType<?> getComparator() throws ConfigurationException
+ public AbstractType<?> getComparator() throws ConfigurationException, SyntaxException
{
return TypeParser.parse((comparators.get(getPropertyString(KW_COMPARATOR, "text")) != null)
? comparators.get(getPropertyString(KW_COMPARATOR, "text"))
: getPropertyString(KW_COMPARATOR, "text"));
}
- public AbstractType<?> getValidator() throws ConfigurationException
+ public AbstractType<?> getValidator() throws ConfigurationException, SyntaxException
{
return TypeParser.parse((comparators.get(getPropertyString(KW_DEFAULTVALIDATION, "text")) != null)
? comparators.get(getPropertyString(KW_DEFAULTVALIDATION, "text"))
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/Cql.g
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/Cql.g b/src/java/org/apache/cassandra/cql/Cql.g
index 0b7e3b6..3c41f44 100644
--- a/src/java/org/apache/cassandra/cql/Cql.g
+++ b/src/java/org/apache/cassandra/cql/Cql.g
@@ -33,9 +33,9 @@ options {
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
+ import org.apache.cassandra.exceptions.SyntaxException;
import org.apache.cassandra.utils.Pair;
- import org.apache.cassandra.thrift.ConsistencyLevel;
- import org.apache.cassandra.thrift.InvalidRequestException;
+ import org.apache.cassandra.db.ConsistencyLevel;
import static org.apache.cassandra.cql.AlterTableStatement.OperationType;
}
@@ -56,10 +56,10 @@ options {
return recognitionErrors;
}
- public void throwLastRecognitionError() throws InvalidRequestException
+ public void throwLastRecognitionError() throws SyntaxException
{
if (recognitionErrors.size() > 0)
- throw new InvalidRequestException(recognitionErrors.get((recognitionErrors.size()-1)));
+ throw new SyntaxException(recognitionErrors.get((recognitionErrors.size()-1)));
}
// used by UPDATE of the counter columns to validate if '-' was supplied by user
@@ -72,7 +72,7 @@ options {
@lexer::header {
package org.apache.cassandra.cql;
- import org.apache.cassandra.thrift.InvalidRequestException;
+ import org.apache.cassandra.exceptions.SyntaxException;
}
@lexer::members {
@@ -104,10 +104,10 @@ options {
return recognitionErrors;
}
- public void throwLastRecognitionError() throws InvalidRequestException
+ public void throwLastRecognitionError() throws SyntaxException
{
if (recognitionErrors.size() > 0)
- throw new InvalidRequestException(recognitionErrors.get((recognitionErrors.size()-1)));
+ throw new SyntaxException(recognitionErrors.get((recognitionErrors.size()-1)));
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java b/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
index 4c86b6e..e0b69a4 100644
--- a/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
+++ b/src/java/org/apache/cassandra/cql/CreateColumnFamilyStatement.java
@@ -26,11 +26,12 @@ import java.util.Map;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.ColumnDefinition;
-import org.apache.cassandra.config.ConfigurationException;
import org.apache.cassandra.db.ColumnFamilyType;
import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.TypeParser;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.exceptions.ConfigurationException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
+import org.apache.cassandra.exceptions.SyntaxException;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.io.compress.CompressionParameters;
@@ -69,6 +70,10 @@ public class CreateColumnFamilyStatement
{
throw new InvalidRequestException(e.toString());
}
+ catch (SyntaxException e)
+ {
+ throw new InvalidRequestException(e.toString());
+ }
for (Map.Entry<Term, String> column : columns.entrySet())
{
@@ -139,6 +144,12 @@ public class CreateColumnFamilyStatement
ex.initCause(e);
throw ex;
}
+ catch (SyntaxException e)
+ {
+ InvalidRequestException ex = new InvalidRequestException(e.toString());
+ ex.initCause(e);
+ throw ex;
+ }
}
return columnDefs;
@@ -191,6 +202,10 @@ public class CreateColumnFamilyStatement
{
throw new InvalidRequestException(e.toString());
}
+ catch (SyntaxException e)
+ {
+ throw new InvalidRequestException(e.toString());
+ }
return newCFMD;
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/CreateKeyspaceStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/CreateKeyspaceStatement.java b/src/java/org/apache/cassandra/cql/CreateKeyspaceStatement.java
index 98b9b6c..8c2aa1b 100644
--- a/src/java/org/apache/cassandra/cql/CreateKeyspaceStatement.java
+++ b/src/java/org/apache/cassandra/cql/CreateKeyspaceStatement.java
@@ -20,7 +20,7 @@ package org.apache.cassandra.cql;
import java.util.HashMap;
import java.util.Map;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
/** A <code>CREATE KEYSPACE</code> statement parsed from a CQL query. */
public class CreateKeyspaceStatement
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/DeleteStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/DeleteStatement.java b/src/java/org/apache/cassandra/cql/DeleteStatement.java
index 0411419..e7d73e8 100644
--- a/src/java/org/apache/cassandra/cql/DeleteStatement.java
+++ b/src/java/org/apache/cassandra/cql/DeleteStatement.java
@@ -28,8 +28,9 @@ import org.apache.cassandra.db.IMutation;
import org.apache.cassandra.db.RowMutation;
import org.apache.cassandra.db.filter.QueryPath;
import org.apache.cassandra.db.marshal.AbstractType;
+import org.apache.cassandra.exceptions.InvalidRequestException;
+import org.apache.cassandra.exceptions.UnauthorizedException;
import org.apache.cassandra.service.ClientState;
-import org.apache.cassandra.thrift.InvalidRequestException;
import static org.apache.cassandra.thrift.ThriftValidation.validateColumnFamily;
import static org.apache.cassandra.cql.QueryProcessor.validateColumnName;
@@ -61,12 +62,14 @@ public class DeleteStatement extends AbstractModification
return keys;
}
- public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, List<ByteBuffer> variables) throws InvalidRequestException
+ public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, List<ByteBuffer> variables)
+ throws InvalidRequestException, UnauthorizedException
{
return prepareRowMutations(keyspace, clientState, null, variables);
}
- public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, Long timestamp, List<ByteBuffer> variables) throws InvalidRequestException
+ public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, Long timestamp, List<ByteBuffer> variables)
+ throws InvalidRequestException, UnauthorizedException
{
CFMetaData metadata = validateColumnFamily(keyspace, columnFamily);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/DropIndexStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/DropIndexStatement.java b/src/java/org/apache/cassandra/cql/DropIndexStatement.java
index a8a8904..7df1f51 100644
--- a/src/java/org/apache/cassandra/cql/DropIndexStatement.java
+++ b/src/java/org/apache/cassandra/cql/DropIndexStatement.java
@@ -20,9 +20,10 @@ package org.apache.cassandra.cql;
import java.io.IOException;
import org.apache.cassandra.config.*;
+import org.apache.cassandra.exceptions.ConfigurationException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.thrift.CfDef;
import org.apache.cassandra.thrift.ColumnDef;
-import org.apache.cassandra.thrift.InvalidRequestException;
public class DropIndexStatement
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/QueryProcessor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/QueryProcessor.java b/src/java/org/apache/cassandra/cql/QueryProcessor.java
index 5cd2d1d..fcf4d5c 100644
--- a/src/java/org/apache/cassandra/cql/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql/QueryProcessor.java
@@ -36,12 +36,24 @@ import org.apache.cassandra.db.marshal.AsciiType;
import org.apache.cassandra.db.marshal.MarshalException;
import org.apache.cassandra.db.marshal.TypeParser;
import org.apache.cassandra.dht.*;
+import org.apache.cassandra.exceptions.*;
import org.apache.cassandra.service.ClientState;
import org.apache.cassandra.service.StorageProxy;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.service.MigrationManager;
-import org.apache.cassandra.thrift.*;
import org.apache.cassandra.thrift.Column;
+import org.apache.cassandra.db.ConsistencyLevel;
+import org.apache.cassandra.thrift.CqlMetadata;
+import org.apache.cassandra.thrift.CqlResult;
+import org.apache.cassandra.thrift.CqlResultType;
+import org.apache.cassandra.thrift.CqlRow;
+import org.apache.cassandra.thrift.CqlPreparedResult;
+import org.apache.cassandra.thrift.IndexExpression;
+import org.apache.cassandra.thrift.IndexOperator;
+import org.apache.cassandra.thrift.IndexType;
+import org.apache.cassandra.thrift.RequestType;
+import org.apache.cassandra.thrift.SchemaDisagreementException;
+import org.apache.cassandra.thrift.ThriftValidation;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.Pair;
@@ -65,7 +77,7 @@ public class QueryProcessor
public static final String DEFAULT_KEY_NAME = bufferToString(CFMetaData.DEFAULT_KEY_NAME);
private static List<org.apache.cassandra.db.Row> getSlice(CFMetaData metadata, SelectStatement select, List<ByteBuffer> variables)
- throws InvalidRequestException, TimedOutException, UnavailableException
+ throws InvalidRequestException, ReadTimeoutException, UnavailableException, IsBootstrappingException
{
QueryPath queryPath = new QueryPath(select.getColumnFamily());
List<ReadCommand> commands = new ArrayList<ReadCommand>();
@@ -111,10 +123,6 @@ public class QueryProcessor
{
return StorageProxy.read(commands, select.getConsistencyLevel());
}
- catch (TimeoutException e)
- {
- throw new TimedOutException();
- }
catch (IOException e)
{
throw new RuntimeException(e);
@@ -137,7 +145,7 @@ public class QueryProcessor
}
private static List<org.apache.cassandra.db.Row> multiRangeSlice(CFMetaData metadata, SelectStatement select, List<ByteBuffer> variables)
- throws TimedOutException, UnavailableException, InvalidRequestException
+ throws ReadTimeoutException, UnavailableException, InvalidRequestException
{
List<org.apache.cassandra.db.Row> rows;
IPartitioner<?> p = StorageService.getPartitioner();
@@ -197,14 +205,6 @@ public class QueryProcessor
{
throw new RuntimeException(e);
}
- catch (org.apache.cassandra.thrift.UnavailableException e)
- {
- throw new UnavailableException();
- }
- catch (TimeoutException e)
- {
- throw new TimedOutException();
- }
// if start key was set and relation was "greater than"
if (select.getKeyStart() != null && !select.includeStartKey() && !rows.isEmpty())
@@ -225,7 +225,7 @@ public class QueryProcessor
}
private static void batchUpdate(ClientState clientState, List<UpdateStatement> updateStatements, ConsistencyLevel consistency, List<ByteBuffer> variables )
- throws InvalidRequestException, UnavailableException, TimedOutException
+ throws RequestValidationException, RequestExecutionException
{
String globalKeyspace = clientState.getKeyspace();
List<IMutation> rowMutations = new ArrayList<IMutation>(updateStatements.size());
@@ -250,14 +250,7 @@ public class QueryProcessor
validateKey(mutation.key());
}
- try
- {
- StorageProxy.mutate(rowMutations, consistency);
- }
- catch (org.apache.cassandra.thrift.UnavailableException e)
- {
- throw new UnavailableException();
- }
+ StorageProxy.mutate(rowMutations, consistency);
}
private static IFilter filterFromSelect(SelectStatement select, CFMetaData metadata, List<ByteBuffer> variables)
@@ -279,7 +272,7 @@ public class QueryProcessor
/* Test for SELECT-specific taboos */
private static void validateSelect(String keyspace, SelectStatement select, List<ByteBuffer> variables) throws InvalidRequestException
{
- ThriftValidation.validateConsistencyLevel(keyspace, select.getConsistencyLevel(), RequestType.READ);
+ select.getConsistencyLevel().validateForRead(keyspace);
// Finish key w/o start key (KEY < foo)
if (!select.isKeyRange() && (select.getKeyFinish() != null))
@@ -405,7 +398,7 @@ public class QueryProcessor
}
public static CqlResult processStatement(CQLStatement statement,ClientState clientState, List<ByteBuffer> variables )
- throws UnavailableException, InvalidRequestException, TimedOutException
+ throws RequestExecutionException, RequestValidationException
{
String keyspace = null;
@@ -564,14 +557,14 @@ public class QueryProcessor
case INSERT: // insert uses UpdateStatement
case UPDATE:
UpdateStatement update = (UpdateStatement)statement.statement;
- ThriftValidation.validateConsistencyLevel(keyspace, update.getConsistencyLevel(), RequestType.WRITE);
+ update.getConsistencyLevel().validateForWrite(keyspace);
batchUpdate(clientState, Collections.singletonList(update), update.getConsistencyLevel(), variables);
result.type = CqlResultType.VOID;
return result;
case BATCH:
BatchStatement batch = (BatchStatement) statement.statement;
- ThriftValidation.validateConsistencyLevel(keyspace, batch.getConsistencyLevel(), RequestType.WRITE);
+ batch.getConsistencyLevel().validateForWrite(keyspace);
if (batch.getTimeToLive() != 0)
throw new InvalidRequestException("Global TTL on the BATCH statement is not supported.");
@@ -593,14 +586,7 @@ public class QueryProcessor
validateKey(mutation.key());
}
- try
- {
- StorageProxy.mutate(mutations, batch.getConsistencyLevel());
- }
- catch (org.apache.cassandra.thrift.UnavailableException e)
- {
- throw new UnavailableException();
- }
+ StorageProxy.mutate(mutations, batch.getConsistencyLevel());
result.type = CqlResultType.VOID;
return result;
@@ -624,11 +610,11 @@ public class QueryProcessor
}
catch (TimeoutException e)
{
- throw (UnavailableException) new UnavailableException().initCause(e);
+ throw new TruncateException(e);
}
catch (IOException e)
{
- throw (UnavailableException) new UnavailableException().initCause(e);
+ throw new RuntimeException(e);
}
result.type = CqlResultType.VOID;
@@ -819,14 +805,14 @@ public class QueryProcessor
}
public static CqlResult process(String queryString, ClientState clientState)
- throws UnavailableException, InvalidRequestException, TimedOutException
+ throws RequestValidationException, RequestExecutionException
{
logger.trace("CQL QUERY: {}", queryString);
return processStatement(getStatement(queryString), clientState, new ArrayList<ByteBuffer>(0));
}
public static CqlPreparedResult prepare(String queryString, ClientState clientState)
- throws InvalidRequestException
+ throws InvalidRequestException, SyntaxException
{
logger.trace("CQL QUERY: {}", queryString);
@@ -843,7 +829,7 @@ public class QueryProcessor
}
public static CqlResult processPrepared(CQLStatement statement, ClientState clientState, List<ByteBuffer> variables)
- throws UnavailableException, InvalidRequestException, TimedOutException
+ throws RequestValidationException, RequestExecutionException
{
// Check to see if there are any bound variables to verify
if (!(variables.isEmpty() && (statement.boundTerms == 0)))
@@ -891,7 +877,7 @@ public class QueryProcessor
return keyString;
}
- private static CQLStatement getStatement(String queryStr) throws InvalidRequestException
+ private static CQLStatement getStatement(String queryStr) throws SyntaxException
{
try
{
@@ -913,14 +899,12 @@ public class QueryProcessor
}
catch (RuntimeException re)
{
- InvalidRequestException ire = new InvalidRequestException("Failed parsing statement: [" + queryStr + "] reason: " + re.getClass().getSimpleName() + " " + re.getMessage());
- ire.initCause(re);
+ SyntaxException ire = new SyntaxException("Failed parsing statement: [" + queryStr + "] reason: " + re.getClass().getSimpleName() + " " + re.getMessage());
throw ire;
}
catch (RecognitionException e)
{
- InvalidRequestException ire = new InvalidRequestException("Invalid or malformed CQL query string");
- ire.initCause(e);
+ SyntaxException ire = new SyntaxException("Invalid or malformed CQL query string: " + e.getMessage());
throw ire;
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/SelectStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/SelectStatement.java b/src/java/org/apache/cassandra/cql/SelectStatement.java
index 426b63e..69b191d 100644
--- a/src/java/org/apache/cassandra/cql/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql/SelectStatement.java
@@ -24,7 +24,7 @@ import java.util.Set;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.Schema;
import org.apache.cassandra.db.marshal.AbstractType;
-import org.apache.cassandra.thrift.ConsistencyLevel;
+import org.apache.cassandra.db.ConsistencyLevel;
/**
* Encapsulates a completely parsed SELECT query, including the target
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/Term.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/Term.java b/src/java/org/apache/cassandra/cql/Term.java
index fbd55fb..8cd312b 100644
--- a/src/java/org/apache/cassandra/cql/Term.java
+++ b/src/java/org/apache/cassandra/cql/Term.java
@@ -26,7 +26,7 @@ import org.apache.cassandra.db.marshal.FloatType;
import org.apache.cassandra.db.marshal.IntegerType;
import org.apache.cassandra.db.marshal.LexicalUUIDType;
import org.apache.cassandra.db.marshal.MarshalException;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
/** A term parsed from a CQL statement. */
public class Term
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql/UpdateStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/UpdateStatement.java b/src/java/org/apache/cassandra/cql/UpdateStatement.java
index 54e5a1f..750cc09 100644
--- a/src/java/org/apache/cassandra/cql/UpdateStatement.java
+++ b/src/java/org/apache/cassandra/cql/UpdateStatement.java
@@ -24,19 +24,19 @@ import org.apache.cassandra.auth.Permission;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.Schema;
import org.apache.cassandra.db.CounterMutation;
+import org.apache.cassandra.db.ConsistencyLevel;
import org.apache.cassandra.db.IMutation;
import org.apache.cassandra.db.RowMutation;
import org.apache.cassandra.db.filter.QueryPath;
import org.apache.cassandra.db.marshal.AbstractType;
+import org.apache.cassandra.exceptions.InvalidRequestException;
+import org.apache.cassandra.exceptions.UnauthorizedException;
import org.apache.cassandra.service.ClientState;
-import org.apache.cassandra.thrift.ConsistencyLevel;
-import org.apache.cassandra.thrift.InvalidRequestException;
import static org.apache.cassandra.cql.QueryProcessor.validateColumn;
import static org.apache.cassandra.cql.QueryProcessor.validateKey;
import static org.apache.cassandra.thrift.ThriftValidation.validateColumnFamily;
-import static org.apache.cassandra.thrift.ThriftValidation.validateCommutativeForWrite;
/**
* An <code>UPDATE</code> statement parsed from a CQL query statement.
@@ -122,13 +122,15 @@ public class UpdateStatement extends AbstractModification
}
/** {@inheritDoc} */
- public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, List<ByteBuffer> variables) throws InvalidRequestException
+ public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, List<ByteBuffer> variables)
+ throws InvalidRequestException, UnauthorizedException
{
return prepareRowMutations(keyspace, clientState, null, variables);
}
/** {@inheritDoc} */
- public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, Long timestamp, List<ByteBuffer> variables) throws InvalidRequestException
+ public List<IMutation> prepareRowMutations(String keyspace, ClientState clientState, Long timestamp, List<ByteBuffer> variables)
+ throws InvalidRequestException, UnauthorizedException
{
List<String> cfamsSeen = new ArrayList<String>();
@@ -145,7 +147,7 @@ public class UpdateStatement extends AbstractModification
CFMetaData metadata = validateColumnFamily(keyspace, columnFamily, hasCommutativeOperation);
if (hasCommutativeOperation)
- validateCommutativeForWrite(metadata, cLevel);
+ cLevel.validateCounterForWrite(metadata);
QueryProcessor.validateKeyAlias(metadata, keyName);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/Attributes.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/Attributes.java b/src/java/org/apache/cassandra/cql3/Attributes.java
index 5450249..00fd30b 100644
--- a/src/java/org/apache/cassandra/cql3/Attributes.java
+++ b/src/java/org/apache/cassandra/cql3/Attributes.java
@@ -17,7 +17,7 @@
*/
package org.apache.cassandra.cql3;
-import org.apache.cassandra.thrift.ConsistencyLevel;
+import org.apache.cassandra.db.ConsistencyLevel;
/**
* Utility class for the Parser to gather attributes for modification
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/CFDefinition.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/CFDefinition.java b/src/java/org/apache/cassandra/cql3/CFDefinition.java
index 51f7ceb7..8e91ade 100644
--- a/src/java/org/apache/cassandra/cql3/CFDefinition.java
+++ b/src/java/org/apache/cassandra/cql3/CFDefinition.java
@@ -29,7 +29,7 @@ import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.ColumnToCollectionType;
import org.apache.cassandra.db.marshal.CompositeType;
import org.apache.cassandra.db.marshal.UTF8Type;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.utils.ByteBufferUtil;
/**
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/CFPropDefs.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/CFPropDefs.java b/src/java/org/apache/cassandra/cql3/CFPropDefs.java
index b7207fe..bd452a3 100644
--- a/src/java/org/apache/cassandra/cql3/CFPropDefs.java
+++ b/src/java/org/apache/cassandra/cql3/CFPropDefs.java
@@ -19,7 +19,7 @@ package org.apache.cassandra.cql3;
import com.google.common.collect.Sets;
import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.db.compaction.AbstractCompactionStrategy;
import org.apache.cassandra.io.compress.CompressionParameters;
import org.slf4j.Logger;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/CQLStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/CQLStatement.java b/src/java/org/apache/cassandra/cql3/CQLStatement.java
index c1daa52..d0889bc 100644
--- a/src/java/org/apache/cassandra/cql3/CQLStatement.java
+++ b/src/java/org/apache/cassandra/cql3/CQLStatement.java
@@ -22,9 +22,7 @@ import java.util.List;
import org.apache.cassandra.transport.messages.ResultMessage;
import org.apache.cassandra.service.ClientState;
-import org.apache.cassandra.thrift.InvalidRequestException;
-import org.apache.cassandra.thrift.TimedOutException;
-import org.apache.cassandra.thrift.UnavailableException;
+import org.apache.cassandra.exceptions.*;
public interface CQLStatement
{
@@ -38,7 +36,7 @@ public interface CQLStatement
*
* @param state the current client state
*/
- public void checkAccess(ClientState state) throws InvalidRequestException;
+ public void checkAccess(ClientState state) throws UnauthorizedException, InvalidRequestException;
/**
* Perform additional validation required by the statment.
@@ -46,7 +44,7 @@ public interface CQLStatement
*
* @param state the current client state
*/
- public void validate(ClientState state) throws InvalidRequestException;
+ public void validate(ClientState state) throws RequestValidationException;
/**
* Execute the statement and return the resulting result or null if there is no result.
@@ -55,5 +53,5 @@ public interface CQLStatement
* @param variables the values for bounded variables. The implementation
* can assume that each bound term have a corresponding value.
*/
- public ResultMessage execute(ClientState state, List<ByteBuffer> variables) throws InvalidRequestException, UnavailableException, TimedOutException;
+ public ResultMessage execute(ClientState state, List<ByteBuffer> variables) throws RequestValidationException, RequestExecutionException;
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/ColumnNameBuilder.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/ColumnNameBuilder.java b/src/java/org/apache/cassandra/cql3/ColumnNameBuilder.java
index 380153f..4c7f434 100644
--- a/src/java/org/apache/cassandra/cql3/ColumnNameBuilder.java
+++ b/src/java/org/apache/cassandra/cql3/ColumnNameBuilder.java
@@ -20,7 +20,7 @@ package org.apache.cassandra.cql3;
import java.nio.ByteBuffer;
import java.util.List;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
/**
* Build a potentially composite column name.
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/Cql.g
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/Cql.g b/src/java/org/apache/cassandra/cql3/Cql.g
index 8c43851..7c02da1 100644
--- a/src/java/org/apache/cassandra/cql3/Cql.g
+++ b/src/java/org/apache/cassandra/cql3/Cql.g
@@ -36,11 +36,12 @@ options {
import org.apache.cassandra.cql3.operations.*;
import org.apache.cassandra.cql3.statements.*;
- import org.apache.cassandra.config.ConfigurationException;
import org.apache.cassandra.db.marshal.CollectionType;
+ import org.apache.cassandra.exceptions.ConfigurationException;
+ import org.apache.cassandra.exceptions.InvalidRequestException;
+ import org.apache.cassandra.exceptions.SyntaxException;
import org.apache.cassandra.utils.Pair;
- import org.apache.cassandra.thrift.ConsistencyLevel;
- import org.apache.cassandra.thrift.InvalidRequestException;
+ import org.apache.cassandra.db.ConsistencyLevel;
}
@members {
@@ -64,10 +65,10 @@ options {
return recognitionErrors;
}
- public void throwLastRecognitionError() throws InvalidRequestException
+ public void throwLastRecognitionError() throws SyntaxException
{
if (recognitionErrors.size() > 0)
- throw new InvalidRequestException(recognitionErrors.get((recognitionErrors.size()-1)));
+ throw new SyntaxException(recognitionErrors.get((recognitionErrors.size()-1)));
}
// used by UPDATE of the counter columns to validate if '-' was supplied by user
@@ -101,7 +102,7 @@ options {
@lexer::header {
package org.apache.cassandra.cql3;
- import org.apache.cassandra.thrift.InvalidRequestException;
+ import org.apache.cassandra.exceptions.SyntaxException;
}
@lexer::members {
@@ -135,10 +136,10 @@ options {
return recognitionErrors;
}
- public void throwLastRecognitionError() throws InvalidRequestException
+ public void throwLastRecognitionError() throws SyntaxException
{
if (recognitionErrors.size() > 0)
- throw new InvalidRequestException(recognitionErrors.get((recognitionErrors.size()-1)));
+ throw new SyntaxException(recognitionErrors.get((recognitionErrors.size()-1)));
}
}
@@ -627,8 +628,10 @@ comparatorType returns [ParsedType t]
{
try {
$t = new ParsedType.Custom($s.text);
- } catch (ConfigurationException e) {
+ } catch (SyntaxException e) {
addRecognitionError("Cannot parse type " + $s.text + ": " + e.getMessage());
+ } catch (ConfigurationException e) {
+ addRecognitionError("Errot setting type " + $s.text + ": " + e.getMessage());
}
}
;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/ParsedType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/ParsedType.java b/src/java/org/apache/cassandra/cql3/ParsedType.java
index 28e6be3..1bb8a12 100644
--- a/src/java/org/apache/cassandra/cql3/ParsedType.java
+++ b/src/java/org/apache/cassandra/cql3/ParsedType.java
@@ -17,9 +17,10 @@
*/
package org.apache.cassandra.cql3;
-import org.apache.cassandra.config.ConfigurationException;
import org.apache.cassandra.db.marshal.*;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
+import org.apache.cassandra.exceptions.ConfigurationException;
+import org.apache.cassandra.exceptions.SyntaxException;
public interface ParsedType
{
@@ -67,9 +68,9 @@ public interface ParsedType
{
private final AbstractType<?> type;
- public Custom(String className) throws ConfigurationException
+ public Custom(String className) throws SyntaxException, ConfigurationException
{
- this.type = TypeParser.parse(className);
+ this.type = TypeParser.parse(className);
}
public boolean isCollection()
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/QueryProcessor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
index d5eb486..3fc8d99 100644
--- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
@@ -30,8 +30,9 @@ import org.apache.cassandra.config.*;
import org.apache.cassandra.db.*;
import org.apache.cassandra.db.filter.*;
import org.apache.cassandra.db.marshal.AbstractType;
+import org.apache.cassandra.exceptions.*;
import org.apache.cassandra.service.ClientState;
-import org.apache.cassandra.thrift.*;
+import org.apache.cassandra.thrift.SchemaDisagreementException;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.SemanticVersion;
@@ -100,7 +101,7 @@ public class QueryProcessor
}
private static ResultMessage processStatement(CQLStatement statement, ClientState clientState, List<ByteBuffer> variables)
- throws UnavailableException, InvalidRequestException, TimedOutException
+ throws RequestExecutionException, RequestValidationException
{
statement.checkAccess(clientState);
statement.validate(clientState);
@@ -109,7 +110,7 @@ public class QueryProcessor
}
public static ResultMessage process(String queryString, ClientState clientState)
- throws UnavailableException, InvalidRequestException, TimedOutException
+ throws RequestExecutionException, RequestValidationException
{
logger.trace("CQL QUERY: {}", queryString);
return processStatement(getStatement(queryString, clientState).statement, clientState, Collections.<ByteBuffer>emptyList());
@@ -126,18 +127,14 @@ public class QueryProcessor
else
return null;
}
- catch (UnavailableException e)
+ catch (RequestExecutionException e)
{
throw new RuntimeException(e);
}
- catch (InvalidRequestException e)
+ catch (RequestValidationException e)
{
throw new AssertionError(e);
}
- catch (TimedOutException e)
- {
- throw new RuntimeException(e);
- }
}
public static UntypedResultSet resultify(String query, Row row)
@@ -148,14 +145,14 @@ public class QueryProcessor
ResultSet cqlRows = ss.process(Collections.singletonList(row));
return new UntypedResultSet(cqlRows);
}
- catch (InvalidRequestException e)
+ catch (RequestValidationException e)
{
throw new AssertionError(e);
}
}
public static ResultMessage.Prepared prepare(String queryString, ClientState clientState)
- throws InvalidRequestException
+ throws RequestValidationException
{
logger.trace("CQL QUERY: {}", queryString);
@@ -171,7 +168,7 @@ public class QueryProcessor
}
public static ResultMessage processPrepared(CQLStatement statement, ClientState clientState, List<ByteBuffer> variables)
- throws UnavailableException, InvalidRequestException, TimedOutException
+ throws RequestExecutionException, RequestValidationException
{
// Check to see if there are any bound variables to verify
if (!(variables.isEmpty() && (statement.getBoundsTerms() == 0)))
@@ -197,7 +194,8 @@ public class QueryProcessor
return cql.hashCode();
}
- private static ParsedStatement.Prepared getStatement(String queryStr, ClientState clientState) throws InvalidRequestException
+ private static ParsedStatement.Prepared getStatement(String queryStr, ClientState clientState)
+ throws RequestValidationException
{
ParsedStatement statement = parseStatement(queryStr);
@@ -208,7 +206,7 @@ public class QueryProcessor
return statement.prepare();
}
- public static ParsedStatement parseStatement(String queryStr) throws InvalidRequestException
+ public static ParsedStatement parseStatement(String queryStr) throws SyntaxException
{
try
{
@@ -230,14 +228,12 @@ public class QueryProcessor
}
catch (RuntimeException re)
{
- InvalidRequestException ire = new InvalidRequestException("Failed parsing statement: [" + queryStr + "] reason: " + re.getClass().getSimpleName() + " " + re.getMessage());
- ire.initCause(re);
+ SyntaxException ire = new SyntaxException("Failed parsing statement: [" + queryStr + "] reason: " + re.getClass().getSimpleName() + " " + re.getMessage());
throw ire;
}
catch (RecognitionException e)
{
- InvalidRequestException ire = new InvalidRequestException("Invalid or malformed CQL query string");
- ire.initCause(e);
+ SyntaxException ire = new SyntaxException("Invalid or malformed CQL query string: " + e.getMessage());
throw ire;
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/Term.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/Term.java b/src/java/org/apache/cassandra/cql3/Term.java
index 9be6499..3f46c35 100644
--- a/src/java/org/apache/cassandra/cql3/Term.java
+++ b/src/java/org/apache/cassandra/cql3/Term.java
@@ -21,12 +21,12 @@ import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.List;
-import org.apache.cassandra.config.ConfigurationException;
import org.apache.cassandra.dht.IPartitioner;
import org.apache.cassandra.dht.Token;
import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.MarshalException;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.exceptions.ConfigurationException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
/** A term parsed from a CQL statement. */
public class Term
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/operations/ColumnOperation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/operations/ColumnOperation.java b/src/java/org/apache/cassandra/cql3/operations/ColumnOperation.java
index 4f36775..e7086c1 100644
--- a/src/java/org/apache/cassandra/cql3/operations/ColumnOperation.java
+++ b/src/java/org/apache/cassandra/cql3/operations/ColumnOperation.java
@@ -28,7 +28,7 @@ import org.apache.cassandra.db.filter.QueryPath;
import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.CollectionType;
import org.apache.cassandra.db.marshal.LongType;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.Pair;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/operations/ListOperation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/operations/ListOperation.java b/src/java/org/apache/cassandra/cql3/operations/ListOperation.java
index b4ba021..3de984b 100644
--- a/src/java/org/apache/cassandra/cql3/operations/ListOperation.java
+++ b/src/java/org/apache/cassandra/cql3/operations/ListOperation.java
@@ -31,7 +31,7 @@ import org.apache.cassandra.db.ColumnFamily;
import org.apache.cassandra.db.IColumn;
import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.CollectionType;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.utils.Pair;
import org.apache.cassandra.utils.UUIDGen;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/operations/MapOperation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/operations/MapOperation.java b/src/java/org/apache/cassandra/cql3/operations/MapOperation.java
index d843fc7..56b1038 100644
--- a/src/java/org/apache/cassandra/cql3/operations/MapOperation.java
+++ b/src/java/org/apache/cassandra/cql3/operations/MapOperation.java
@@ -30,7 +30,7 @@ import org.apache.cassandra.db.ColumnFamily;
import org.apache.cassandra.db.IColumn;
import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.CollectionType;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.utils.Pair;
public class MapOperation implements Operation
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/operations/Operation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/operations/Operation.java b/src/java/org/apache/cassandra/cql3/operations/Operation.java
index 13c341c..5261677 100644
--- a/src/java/org/apache/cassandra/cql3/operations/Operation.java
+++ b/src/java/org/apache/cassandra/cql3/operations/Operation.java
@@ -27,7 +27,7 @@ import org.apache.cassandra.db.ColumnFamily;
import org.apache.cassandra.db.IColumn;
import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.CollectionType;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.utils.Pair;
public interface Operation
http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a2faf94/src/java/org/apache/cassandra/cql3/operations/SetOperation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/operations/SetOperation.java b/src/java/org/apache/cassandra/cql3/operations/SetOperation.java
index 22b4517..a31059c 100644
--- a/src/java/org/apache/cassandra/cql3/operations/SetOperation.java
+++ b/src/java/org/apache/cassandra/cql3/operations/SetOperation.java
@@ -27,7 +27,7 @@ import org.apache.cassandra.db.ColumnFamily;
import org.apache.cassandra.db.IColumn;
import org.apache.cassandra.db.marshal.AbstractType;
import org.apache.cassandra.db.marshal.CollectionType;
-import org.apache.cassandra.thrift.InvalidRequestException;
+import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.Pair;