Repository: cassandra
Updated Branches:
  refs/heads/trunk 6ba099940 -> 17624248e


Make CassandraException unchecked, extend RuntimeException

Patch by Robert Stupp, reviewed by Sylvain Lebresne for CASSANDRA-8560


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

Branch: refs/heads/trunk
Commit: 17624248efc316de125d1bc3c6be4f0cb4e174a2
Parents: 6ba0999
Author: Robert Stupp <sn...@snazy.de>
Authored: Mon Jan 19 09:22:51 2015 +0100
Committer: Robert Stupp <sn...@snazy.de>
Committed: Mon Jan 19 09:22:51 2015 +0100

----------------------------------------------------------------------
 CHANGES.txt                                     |   1 +
 .../cassandra/auth/CassandraAuthorizer.java     |  17 +-
 .../cassandra/auth/PasswordAuthenticator.java   |  25 +--
 .../org/apache/cassandra/client/RingCache.java  |   2 +-
 .../org/apache/cassandra/config/CFMetaData.java |  28 +--
 .../apache/cassandra/cql3/QueryProcessor.java   | 117 ++++--------
 .../org/apache/cassandra/cql3/TypeCast.java     |  21 +--
 .../apache/cassandra/cql3/UntypedResultSet.java |  16 +-
 .../cql3/statements/CreateTableStatement.java   |  19 +-
 .../statements/SchemaAlteringStatement.java     |  17 +-
 .../cql3/statements/TruncateStatement.java      |  10 +-
 .../db/index/SecondaryIndexManager.java         |  11 +-
 .../db/marshal/DynamicCompositeType.java        |  22 +--
 .../exceptions/CassandraException.java          |   2 +-
 .../apache/cassandra/hadoop/ConfigHelper.java   |  24 +--
 .../hadoop/pig/AbstractCassandraStorage.java    |   4 -
 .../io/compress/CompressionParameters.java      |   9 +-
 .../locator/AbstractReplicationStrategy.java    |  24 +--
 .../cassandra/schema/LegacySchemaTables.java    | 178 ++++++++-----------
 .../org/apache/cassandra/tracing/Tracing.java   |   5 -
 .../org/apache/cassandra/cql3/CQLTester.java    |  73 ++------
 .../cassandra/cql3/ThriftCompatibilityTest.java |  13 +-
 22 files changed, 187 insertions(+), 451 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index f5a10ee..41bdba9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0
+ * Make CassandraException unchecked, extend RuntimeException (CASSANDRA-8560)
  * Support direct buffer decompression for reads (CASSANDRA-8464)
  * DirectByteBuffer compatible LZ4 methods (CASSANDRA-7039)
  * Add role based access control (CASSANDRA-7653)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java 
b/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java
index 6239bc4..1d672b3 100644
--- a/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java
+++ b/src/java/org/apache/cassandra/auth/CassandraAuthorizer.java
@@ -369,18 +369,11 @@ public class CassandraAuthorizer implements IAuthorizer
 
     private SelectStatement prepare(String entityname, String permissionsTable)
     {
-        try
-        {
-            String query = String.format("SELECT permissions FROM %s.%s WHERE 
%s = ? AND resource = ?",
-                                         AuthKeyspace.NAME,
-                                         permissionsTable,
-                                         entityname);
-            return (SelectStatement) QueryProcessor.getStatement(query, 
ClientState.forInternalCalls()).statement;
-        }
-        catch (RequestValidationException e)
-        {
-            throw new AssertionError(e);
-        }
+        String query = String.format("SELECT permissions FROM %s.%s WHERE %s = 
? AND resource = ?",
+                                     AuthKeyspace.NAME,
+                                     permissionsTable,
+                                     entityname);
+        return (SelectStatement) QueryProcessor.getStatement(query, 
ClientState.forInternalCalls()).statement;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java 
b/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java
index 14a6ecf..2ab2316 100644
--- a/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java
+++ b/src/java/org/apache/cassandra/auth/PasswordAuthenticator.java
@@ -140,18 +140,10 @@ public class PasswordAuthenticator implements 
IAuthenticator
     private AuthenticatedUser doAuthenticate(String username, String password, 
SelectStatement authenticationStatement)
     throws RequestExecutionException, AuthenticationException
     {
-        UntypedResultSet result;
-        try
-        {
-            ResultMessage.Rows rows = 
authenticationStatement.execute(QueryState.forInternalCalls(),
-                                                                      
QueryOptions.forInternalCalls(consistencyForRole(username),
-                                                                               
                     Lists.newArrayList(ByteBufferUtil.bytes(username))));
-            result = UntypedResultSet.create(rows.result);
-        }
-        catch (RequestValidationException e)
-        {
-            throw new AssertionError(e); // not supposed to happen
-        }
+        ResultMessage.Rows rows = 
authenticationStatement.execute(QueryState.forInternalCalls(),
+                                                                  
QueryOptions.forInternalCalls(consistencyForRole(username),
+                                                                               
                 Lists.newArrayList(ByteBufferUtil.bytes(username))));
+        UntypedResultSet result = UntypedResultSet.create(rows.result);
 
         if ((result.isEmpty() || !result.one().has(SALTED_HASH)) || 
!BCrypt.checkpw(password, result.one().getString(SALTED_HASH)))
             throw new AuthenticationException("Username and/or password are 
incorrect");
@@ -161,14 +153,7 @@ public class PasswordAuthenticator implements 
IAuthenticator
 
     private SelectStatement prepare(String query)
     {
-        try
-        {
-            return (SelectStatement) QueryProcessor.getStatement(query, 
ClientState.forInternalCalls()).statement;
-        }
-        catch (RequestValidationException e)
-        {
-            throw new AssertionError(e);
-        }
+        return (SelectStatement) QueryProcessor.getStatement(query, 
ClientState.forInternalCalls()).statement;
     }
 
     private class PlainTextSaslAuthenticator implements SaslNegotiator

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/client/RingCache.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/client/RingCache.java 
b/src/java/org/apache/cassandra/client/RingCache.java
index 5865cd0..1a9ff0b 100644
--- a/src/java/org/apache/cassandra/client/RingCache.java
+++ b/src/java/org/apache/cassandra/client/RingCache.java
@@ -88,7 +88,7 @@ public class RingCache
                 }
             }
         }
-        catch (InvalidRequestException | IOException e)
+        catch (IOException e)
         {
             throw new RuntimeException(e);
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/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 cb176f2..138acac 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -291,19 +291,12 @@ public final class CFMetaData
 
     public static CFMetaData compile(String cql, String keyspace)
     {
-        try
-        {
-            CFStatement parsed = 
(CFStatement)QueryProcessor.parseStatement(cql);
-            parsed.prepareKeyspace(keyspace);
-            CreateTableStatement statement = (CreateTableStatement) 
parsed.prepare().statement;
-            CFMetaData cfm = newSystemMetadata(keyspace, 
statement.columnFamily(), "", statement.comparator);
-            statement.applyPropertiesTo(cfm);
-            return cfm.rebuild();
-        }
-        catch (RequestValidationException e)
-        {
-            throw new RuntimeException(e);
-        }
+        CFStatement parsed = (CFStatement)QueryProcessor.parseStatement(cql);
+        parsed.prepareKeyspace(keyspace);
+        CreateTableStatement statement = (CreateTableStatement) 
parsed.prepare().statement;
+        CFMetaData cfm = newSystemMetadata(keyspace, statement.columnFamily(), 
"", statement.comparator);
+        statement.applyPropertiesTo(cfm);
+        return cfm.rebuild();
     }
 
     /**
@@ -730,14 +723,7 @@ public final class CFMetaData
      */
     public boolean reload()
     {
-        try
-        {
-            return apply(LegacySchemaTables.createTableFromName(ksName, 
cfName));
-        }
-        catch (ConfigurationException e)
-        {
-            throw new RuntimeException(e);
-        }
+        return apply(LegacySchemaTables.createTableFromName(ksName, cfName));
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/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 f746a85..3821e99 100644
--- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
@@ -31,6 +31,7 @@ import com.googlecode.concurrentlinkedhashmap.EntryWeigher;
 import com.googlecode.concurrentlinkedhashmap.EvictionListener;
 
 import org.antlr.runtime.*;
+import org.apache.cassandra.exceptions.CassandraException;
 import org.apache.cassandra.service.MigrationListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -73,7 +74,7 @@ public class QueryProcessor implements QueryHandler
     private static final MemoryMeter meter = new 
MemoryMeter().withGuessing(MemoryMeter.Guess.FALLBACK_BEST).ignoreKnownSingletons();
     private static final long MAX_CACHE_PREPARED_MEMORY = 
Runtime.getRuntime().maxMemory() / 256;
 
-    private static EntryWeigher<MD5Digest, ParsedStatement.Prepared> 
cqlMemoryUsageWeigher = new EntryWeigher<MD5Digest, ParsedStatement.Prepared>()
+    private static final EntryWeigher<MD5Digest, ParsedStatement.Prepared> 
cqlMemoryUsageWeigher = new EntryWeigher<MD5Digest, ParsedStatement.Prepared>()
     {
         @Override
         public int weightOf(MD5Digest key, ParsedStatement.Prepared value)
@@ -82,7 +83,7 @@ public class QueryProcessor implements QueryHandler
         }
     };
 
-    private static EntryWeigher<Integer, ParsedStatement.Prepared> 
thriftMemoryUsageWeigher = new EntryWeigher<Integer, ParsedStatement.Prepared>()
+    private static final EntryWeigher<Integer, ParsedStatement.Prepared> 
thriftMemoryUsageWeigher = new EntryWeigher<Integer, ParsedStatement.Prepared>()
     {
         @Override
         public int weightOf(Integer key, ParsedStatement.Prepared value)
@@ -159,14 +160,7 @@ public class QueryProcessor implements QueryHandler
         InternalStateInstance()
         {
             ClientState state = ClientState.forInternalCalls();
-            try
-            {
-                state.setKeyspace(SystemKeyspace.NAME);
-            }
-            catch (InvalidRequestException e)
-            {
-                throw new RuntimeException();
-            }
+            state.setKeyspace(SystemKeyspace.NAME);
             this.queryState = new QueryState(state);
         }
     }
@@ -268,18 +262,11 @@ public class QueryProcessor implements QueryHandler
 
     public static UntypedResultSet process(String query, ConsistencyLevel cl) 
throws RequestExecutionException
     {
-        try
-        {
-            ResultMessage result = instance.process(query, 
QueryState.forInternalCalls(), QueryOptions.forInternalCalls(cl, 
Collections.<ByteBuffer>emptyList()));
-            if (result instanceof ResultMessage.Rows)
-                return 
UntypedResultSet.create(((ResultMessage.Rows)result).result);
-            else
-                return null;
-        }
-        catch (RequestValidationException e)
-        {
-            throw new RuntimeException(e);
-        }
+        ResultMessage result = instance.process(query, 
QueryState.forInternalCalls(), QueryOptions.forInternalCalls(cl, 
Collections.<ByteBuffer>emptyList()));
+        if (result instanceof ResultMessage.Rows)
+            return 
UntypedResultSet.create(((ResultMessage.Rows)result).result);
+        else
+            return null;
     }
 
     private static QueryOptions makeInternalOptions(ParsedStatement.Prepared 
prepared, Object[] values)
@@ -312,41 +299,23 @@ public class QueryProcessor implements QueryHandler
 
     public static UntypedResultSet executeInternal(String query, Object... 
values)
     {
-        try
-        {
-            ParsedStatement.Prepared prepared = prepareInternal(query);
-            ResultMessage result = 
prepared.statement.executeInternal(internalQueryState(), 
makeInternalOptions(prepared, values));
-            if (result instanceof ResultMessage.Rows)
-                return 
UntypedResultSet.create(((ResultMessage.Rows)result).result);
-            else
-                return null;
-        }
-        catch (RequestExecutionException e)
-        {
-            throw new RuntimeException(e);
-        }
-        catch (RequestValidationException e)
-        {
-            throw new RuntimeException("Error validating " + query, e);
-        }
+        ParsedStatement.Prepared prepared = prepareInternal(query);
+        ResultMessage result = 
prepared.statement.executeInternal(internalQueryState(), 
makeInternalOptions(prepared, values));
+        if (result instanceof ResultMessage.Rows)
+            return 
UntypedResultSet.create(((ResultMessage.Rows)result).result);
+        else
+            return null;
     }
 
     public static UntypedResultSet executeInternalWithPaging(String query, int 
pageSize, Object... values)
     {
-        try
-        {
-            ParsedStatement.Prepared prepared = prepareInternal(query);
-            if (!(prepared.statement instanceof SelectStatement))
-                throw new IllegalArgumentException("Only SELECTs can be 
paged");
+        ParsedStatement.Prepared prepared = prepareInternal(query);
+        if (!(prepared.statement instanceof SelectStatement))
+            throw new IllegalArgumentException("Only SELECTs can be paged");
 
-            SelectStatement select = (SelectStatement)prepared.statement;
-            QueryPager pager = 
QueryPagers.localPager(select.getPageableCommand(makeInternalOptions(prepared, 
values)));
-            return UntypedResultSet.create(select, pager, pageSize);
-        }
-        catch (RequestValidationException e)
-        {
-            throw new RuntimeException("Error validating query" + e);
-        }
+        SelectStatement select = (SelectStatement)prepared.statement;
+        QueryPager pager = 
QueryPagers.localPager(select.getPageableCommand(makeInternalOptions(prepared, 
values)));
+        return UntypedResultSet.create(select, pager, pageSize);
     }
 
     /**
@@ -355,24 +324,13 @@ public class QueryProcessor implements QueryHandler
      */
     public static UntypedResultSet executeOnceInternal(String query, Object... 
values)
     {
-        try
-        {
-            ParsedStatement.Prepared prepared = parseStatement(query, 
internalQueryState());
-            prepared.statement.validate(internalQueryState().getClientState());
-            ResultMessage result = 
prepared.statement.executeInternal(internalQueryState(), 
makeInternalOptions(prepared, values));
-            if (result instanceof ResultMessage.Rows)
-                return 
UntypedResultSet.create(((ResultMessage.Rows)result).result);
-            else
-                return null;
-        }
-        catch (RequestExecutionException e)
-        {
-            throw new RuntimeException(e);
-        }
-        catch (RequestValidationException e)
-        {
-            throw new RuntimeException("Error validating query " + query, e);
-        }
+        ParsedStatement.Prepared prepared = parseStatement(query, 
internalQueryState());
+        prepared.statement.validate(internalQueryState().getClientState());
+        ResultMessage result = 
prepared.statement.executeInternal(internalQueryState(), 
makeInternalOptions(prepared, values));
+        if (result instanceof ResultMessage.Rows)
+            return 
UntypedResultSet.create(((ResultMessage.Rows)result).result);
+        else
+            return null;
     }
 
     public static UntypedResultSet resultify(String query, Row row)
@@ -382,27 +340,18 @@ public class QueryProcessor implements QueryHandler
 
     public static UntypedResultSet resultify(String query, List<Row> rows)
     {
-        try
-        {
-            SelectStatement ss = (SelectStatement) getStatement(query, 
null).statement;
-            ResultSet cqlRows = ss.process(rows);
-            return UntypedResultSet.create(cqlRows);
-        }
-        catch (RequestValidationException e)
-        {
-            throw new AssertionError(e);
-        }
+        SelectStatement ss = (SelectStatement) getStatement(query, 
null).statement;
+        ResultSet cqlRows = ss.process(rows);
+        return UntypedResultSet.create(cqlRows);
     }
 
     public ResultMessage.Prepared prepare(String queryString, QueryState 
queryState)
-    throws RequestValidationException
     {
         ClientState cState = queryState.getClientState();
         return prepare(queryString, cState, cState instanceof 
ThriftClientState);
     }
 
     public static ResultMessage.Prepared prepare(String queryString, 
ClientState clientState, boolean forThrift)
-    throws RequestValidationException
     {
         ResultMessage.Prepared existing = 
getStoredPreparedStatement(queryString, clientState.getRawKeyspace(), 
forThrift);
         if (existing != null)
@@ -541,6 +490,10 @@ public class QueryProcessor implements QueryHandler
 
             return statement;
         }
+        catch (CassandraException ce)
+        {
+            throw ce;
+        }
         catch (RuntimeException re)
         {
             logger.error(String.format("The statement: [%s] could not be 
parsed.", queryStr), re);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/cql3/TypeCast.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/TypeCast.java 
b/src/java/org/apache/cassandra/cql3/TypeCast.java
index 10b040e..561a158 100644
--- a/src/java/org/apache/cassandra/cql3/TypeCast.java
+++ b/src/java/org/apache/cassandra/cql3/TypeCast.java
@@ -49,20 +49,13 @@ public class TypeCast implements Term.Raw
 
     public AssignmentTestable.TestResult testAssignment(String keyspace, 
ColumnSpecification receiver)
     {
-        try
-        {
-            AbstractType<?> castedType = type.prepare(keyspace).getType();
-            if (receiver.type.equals(castedType))
-                return AssignmentTestable.TestResult.EXACT_MATCH;
-            else if (receiver.type.isValueCompatibleWith(castedType))
-                return AssignmentTestable.TestResult.WEAKLY_ASSIGNABLE;
-            else
-                return AssignmentTestable.TestResult.NOT_ASSIGNABLE;
-        }
-        catch (InvalidRequestException e)
-        {
-            throw new AssertionError();
-        }
+        AbstractType<?> castedType = type.prepare(keyspace).getType();
+        if (receiver.type.equals(castedType))
+            return AssignmentTestable.TestResult.EXACT_MATCH;
+        else if (receiver.type.isValueCompatibleWith(castedType))
+            return AssignmentTestable.TestResult.WEAKLY_ASSIGNABLE;
+        else
+            return AssignmentTestable.TestResult.NOT_ASSIGNABLE;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/cql3/UntypedResultSet.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java 
b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java
index 9d5a5f1..64fd60d 100644
--- a/src/java/org/apache/cassandra/cql3/UntypedResultSet.java
+++ b/src/java/org/apache/cassandra/cql3/UntypedResultSet.java
@@ -175,17 +175,13 @@ public abstract class UntypedResultSet implements 
Iterable<UntypedResultSet.Row>
 
                 protected Row computeNext()
                 {
-                    try {
-                        while (currentPage == null || !currentPage.hasNext())
-                        {
-                            if (pager.isExhausted())
-                                return endOfData();
-                            currentPage = 
select.process(pager.fetchPage(pageSize)).rows.iterator();
-                        }
-                        return new Row(metadata, currentPage.next());
-                    } catch (RequestValidationException | 
RequestExecutionException e) {
-                        throw new RuntimeException(e);
+                    while (currentPage == null || !currentPage.hasNext())
+                    {
+                        if (pager.isExhausted())
+                            return endOfData();
+                        currentPage = 
select.process(pager.fetchPage(pageSize)).rows.iterator();
                     }
+                    return new Row(metadata, currentPage.next());
                 }
             };
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
index c8c2474..6b32c95 100644
--- a/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
@@ -65,19 +65,12 @@ public class CreateTableStatement extends 
SchemaAlteringStatement
         this.ifNotExists = ifNotExists;
         this.staticColumns = staticColumns;
 
-        try
-        {
-            if (!this.properties.hasProperty(CFPropDefs.KW_COMPRESSION) && 
CFMetaData.DEFAULT_COMPRESSOR != null)
-                this.properties.addProperty(CFPropDefs.KW_COMPRESSION,
-                                            new HashMap<String, String>()
-                                            {{
-                                                
put(CompressionParameters.SSTABLE_COMPRESSION, CFMetaData.DEFAULT_COMPRESSOR);
-                                            }});
-        }
-        catch (SyntaxException e)
-        {
-            throw new AssertionError(e);
-        }
+        if (!this.properties.hasProperty(CFPropDefs.KW_COMPRESSION) && 
CFMetaData.DEFAULT_COMPRESSOR != null)
+            this.properties.addProperty(CFPropDefs.KW_COMPRESSION,
+                                        new HashMap<String, String>()
+                                        {{
+                                            
put(CompressionParameters.SSTABLE_COMPRESSION, CFMetaData.DEFAULT_COMPRESSOR);
+                                        }});
     }
 
     public void checkAccess(ClientState state) throws UnauthorizedException, 
InvalidRequestException

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/cql3/statements/SchemaAlteringStatement.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/SchemaAlteringStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/SchemaAlteringStatement.java
index 018d244..b0d67ac 100644
--- a/src/java/org/apache/cassandra/cql3/statements/SchemaAlteringStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SchemaAlteringStatement.java
@@ -87,18 +87,11 @@ public abstract class SchemaAlteringStatement extends 
CFStatement implements CQL
 
     public ResultMessage executeInternal(QueryState state, QueryOptions 
options)
     {
-        try
-        {
-            boolean didChangeSchema = announceMigration(true);
-            if (!didChangeSchema)
-                return new ResultMessage.Void();
+        boolean didChangeSchema = announceMigration(true);
+        if (!didChangeSchema)
+            return new ResultMessage.Void();
 
-            Event.SchemaChange ce = changeEvent();
-            return ce == null ? new ResultMessage.Void() : new 
ResultMessage.SchemaChange(ce);
-        }
-        catch (RequestValidationException e)
-        {
-            throw new RuntimeException(e);
-        }
+        Event.SchemaChange ce = changeEvent();
+        return ce == null ? new ResultMessage.Void() : new 
ResultMessage.SchemaChange(ce);
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/cql3/statements/TruncateStatement.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/TruncateStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/TruncateStatement.java
index ef1c4a4..16c531c 100644
--- a/src/java/org/apache/cassandra/cql3/statements/TruncateStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/TruncateStatement.java
@@ -62,15 +62,7 @@ public class TruncateStatement extends CFStatement 
implements CQLStatement
         {
             StorageProxy.truncateBlocking(keyspace(), columnFamily());
         }
-        catch (UnavailableException e)
-        {
-            throw new TruncateException(e);
-        }
-        catch (TimeoutException e)
-        {
-            throw new TruncateException(e);
-        }
-        catch (IOException e)
+        catch (UnavailableException | TimeoutException | IOException e)
         {
             throw new TruncateException(e);
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java 
b/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
index 10a7ce3..12cff79 100644
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
@@ -50,7 +50,6 @@ import org.apache.cassandra.db.SystemKeyspace;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.composites.CellName;
 import org.apache.cassandra.db.filter.ExtendedFilter;
-import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.exceptions.InvalidRequestException;
 import org.apache.cassandra.io.sstable.ReducingKeyIterator;
 import org.apache.cassandra.io.sstable.format.SSTableReader;
@@ -274,15 +273,7 @@ public class SecondaryIndexManager
 
         assert cdef.getIndexType() != null;
 
-        SecondaryIndex index;
-        try
-        {
-            index = SecondaryIndex.createInstance(baseCfs, cdef);
-        }
-        catch (ConfigurationException e)
-        {
-            throw new RuntimeException(e);
-        }
+        SecondaryIndex index = SecondaryIndex.createInstance(baseCfs, cdef);
 
         // Keep a single instance of the index per-cf for row level indexes
         // since we want all columns to be under the index

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java 
b/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java
index d3b0b90..c4514d7 100644
--- a/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java
+++ b/src/java/org/apache/cassandra/db/marshal/DynamicCompositeType.java
@@ -105,14 +105,6 @@ public class DynamicCompositeType extends 
AbstractCompositeType
         {
             throw new RuntimeException(e);
         }
-        catch (ConfigurationException e)
-        {
-            throw new RuntimeException(e);
-        }
-        catch (SyntaxException e)
-        {
-            throw new RuntimeException(e);
-        }
     }
 
     protected AbstractType<?> getComparator(int i, ByteBuffer bb)
@@ -180,14 +172,6 @@ public class DynamicCompositeType extends 
AbstractCompositeType
         {
             throw new RuntimeException(e);
         }
-        catch (ConfigurationException e)
-        {
-            throw new RuntimeException(e);
-        }
-        catch (SyntaxException e)
-        {
-            throw new RuntimeException(e);
-        }
     }
 
     protected ParsedComparator parseComparator(int i, String part)
@@ -304,11 +288,7 @@ public class DynamicCompositeType extends 
AbstractCompositeType
                 }
                 type = t;
             }
-            catch (SyntaxException e)
-            {
-                throw new IllegalArgumentException(e);
-            }
-            catch (ConfigurationException e)
+            catch (SyntaxException | ConfigurationException e)
             {
                 throw new IllegalArgumentException(e);
             }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/exceptions/CassandraException.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/exceptions/CassandraException.java 
b/src/java/org/apache/cassandra/exceptions/CassandraException.java
index aaa8055..58521df 100644
--- a/src/java/org/apache/cassandra/exceptions/CassandraException.java
+++ b/src/java/org/apache/cassandra/exceptions/CassandraException.java
@@ -17,7 +17,7 @@
  */
 package org.apache.cassandra.exceptions;
 
-public abstract class CassandraException extends Exception implements 
TransportException
+public abstract class CassandraException extends RuntimeException implements 
TransportException
 {
     private final ExceptionCode code;
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/hadoop/ConfigHelper.java 
b/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
index 6b3c9c5..69504b1 100644
--- a/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
+++ b/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
@@ -417,14 +417,7 @@ public class ConfigHelper
 
     public static IPartitioner getInputPartitioner(Configuration conf)
     {
-        try
-        {
-            return 
FBUtilities.newPartitioner(conf.get(INPUT_PARTITIONER_CONFIG));
-        }
-        catch (ConfigurationException e)
-        {
-            throw new RuntimeException(e);
-        }
+        return FBUtilities.newPartitioner(conf.get(INPUT_PARTITIONER_CONFIG));
     }
 
     public static int getOutputRpcPort(Configuration conf)
@@ -454,14 +447,7 @@ public class ConfigHelper
 
     public static IPartitioner getOutputPartitioner(Configuration conf)
     {
-        try
-        {
-            return 
FBUtilities.newPartitioner(conf.get(OUTPUT_PARTITIONER_CONFIG));
-        }
-        catch (ConfigurationException e)
-        {
-            throw new RuntimeException(e);
-        }
+        return FBUtilities.newPartitioner(conf.get(OUTPUT_PARTITIONER_CONFIG));
     }
 
     public static String getOutputCompressionClass(Configuration conf)
@@ -507,11 +493,7 @@ public class ConfigHelper
         options.put(CompressionParameters.SSTABLE_COMPRESSION, 
getOutputCompressionClass(conf));
         options.put(CompressionParameters.CHUNK_LENGTH_KB, 
getOutputCompressionChunkLength(conf));
 
-        try {
-            return CompressionParameters.create(options);
-        } catch (ConfigurationException e) {
-            throw new RuntimeException(e);
-        }
+        return CompressionParameters.create(options);
     }
 
     public static boolean getOutputLocalDCOnly(Configuration conf)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java 
b/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java
index 447c8ce..45f16f2 100644
--- a/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java
+++ b/src/java/org/apache/cassandra/hadoop/pig/AbstractCassandraStorage.java
@@ -516,10 +516,6 @@ public abstract class AbstractCassandraStorage extends 
LoadFunc implements Store
                         logger.error("Authentication exception: invalid 
username and/or password");
                         throw new IOException(e);
                     }
-                    catch (AuthorizationException e)
-                    {
-                        throw new AssertionError(e); // never actually throws 
AuthorizationException.
-                    }
                 }
 
                 // compose the CfDef for the columfamily

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/io/compress/CompressionParameters.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/io/compress/CompressionParameters.java 
b/src/java/org/apache/cassandra/io/compress/CompressionParameters.java
index 0bc2916..88ca396 100644
--- a/src/java/org/apache/cassandra/io/compress/CompressionParameters.java
+++ b/src/java/org/apache/cassandra/io/compress/CompressionParameters.java
@@ -93,14 +93,7 @@ public class CompressionParameters
 
     public CompressionParameters copy()
     {
-        try
-        {
-            return new CompressionParameters(sstableCompressor, chunkLength, 
new HashMap<>(otherOptions));
-        }
-        catch (ConfigurationException e)
-        {
-            throw new AssertionError(e); // can't happen at this point.
-        }
+        return new CompressionParameters(sstableCompressor, chunkLength, new 
HashMap<>(otherOptions));
     }
 
     public void setLiveMetadata(final CFMetaData liveMetadata)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java 
b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
index 754a96b..059f21a 100644
--- a/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
+++ b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
@@ -251,28 +251,20 @@ public abstract class AbstractReplicationStrategy
                                                                         
IEndpointSnitch snitch,
                                                                         
Map<String, String> strategyOptions)
     {
+        AbstractReplicationStrategy strategy = createInternal(keyspaceName, 
strategyClass, tokenMetadata, snitch, strategyOptions);
+
+        // Because we used to not properly validate unrecognized options, we 
only log a warning if we find one.
         try
         {
-            AbstractReplicationStrategy strategy = 
createInternal(keyspaceName, strategyClass, tokenMetadata, snitch, 
strategyOptions);
-
-            // Because we used to not properly validate unrecognized options, 
we only log a warning if we find one.
-            try
-            {
-                strategy.validateExpectedOptions();
-            }
-            catch (ConfigurationException e)
-            {
-                logger.warn("Ignoring {}", e.getMessage());
-            }
-
-            strategy.validateOptions();
-            return strategy;
+            strategy.validateExpectedOptions();
         }
         catch (ConfigurationException e)
         {
-            // If that happens at this point, there is nothing we can do about 
it.
-            throw new RuntimeException(e);
+            logger.warn("Ignoring {}", e.getMessage());
         }
+
+        strategy.validateOptions();
+        return strategy;
     }
 
     public static void validateReplicationStrategy(String keyspaceName,

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/schema/LegacySchemaTables.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/schema/LegacySchemaTables.java 
b/src/java/org/apache/cassandra/schema/LegacySchemaTables.java
index 4d06863..51040a1 100644
--- a/src/java/org/apache/cassandra/schema/LegacySchemaTables.java
+++ b/src/java/org/apache/cassandra/schema/LegacySchemaTables.java
@@ -47,7 +47,6 @@ import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.exceptions.InvalidRequestException;
-import org.apache.cassandra.exceptions.SyntaxException;
 import org.apache.cassandra.io.compress.CompressionParameters;
 import org.apache.cassandra.locator.AbstractReplicationStrategy;
 import org.apache.cassandra.service.StorageService;
@@ -752,17 +751,10 @@ public class LegacySchemaTables
     {
         String query = String.format("SELECT * FROM %s.%s", 
SystemKeyspace.NAME, KEYSPACES);
         UntypedResultSet.Row row = QueryProcessor.resultify(query, 
partition).one();
-        try
-        {
-            return new KSMetaData(row.getString("keyspace_name"),
-                                  
AbstractReplicationStrategy.getClass(row.getString("strategy_class")),
-                                  
fromJsonMap(row.getString("strategy_options")),
-                                  row.getBoolean("durable_writes"));
-        }
-        catch (ConfigurationException e)
-        {
-            throw new RuntimeException(e);
-        }
+        return new KSMetaData(row.getString("keyspace_name"),
+                              
AbstractReplicationStrategy.getClass(row.getString("strategy_class")),
+                              fromJsonMap(row.getString("strategy_options")),
+                              row.getBoolean("durable_writes"));
     }
 
     /*
@@ -1040,15 +1032,8 @@ public class LegacySchemaTables
         CFMetaData cfm = createTableFromTableRowAndColumnsPartition(result, 
serializedColumns);
 
         Row serializedTriggers = readSchemaPartitionForTable(TRIGGERS, ksName, 
cfName);
-        try
-        {
-            for (TriggerDefinition trigger : 
createTriggersFromTriggersPartition(serializedTriggers))
-                cfm.addTriggerDefinition(trigger);
-        }
-        catch (InvalidRequestException e)
-        {
-            throw new RuntimeException(e);
-        }
+        for (TriggerDefinition trigger : 
createTriggersFromTriggersPartition(serializedTriggers))
+            cfm.addTriggerDefinition(trigger);
 
         return cfm;
     }
@@ -1056,80 +1041,73 @@ public class LegacySchemaTables
     public static CFMetaData 
createTableFromTableRowAndColumnRows(UntypedResultSet.Row result,
                                                                   
UntypedResultSet serializedColumnDefinitions)
     {
-        try
-        {
-            String ksName = result.getString("keyspace_name");
-            String cfName = result.getString("columnfamily_name");
-
-            AbstractType<?> rawComparator = 
TypeParser.parse(result.getString("comparator"));
-            AbstractType<?> subComparator = result.has("subcomparator") ? 
TypeParser.parse(result.getString("subcomparator")) : null;
-            ColumnFamilyType cfType = 
ColumnFamilyType.valueOf(result.getString("type"));
-
-            AbstractType<?> fullRawComparator = 
CFMetaData.makeRawAbstractType(rawComparator, subComparator);
-
-            List<ColumnDefinition> columnDefs = 
createColumnsFromColumnRows(serializedColumnDefinitions,
-                                                                            
ksName,
-                                                                            
cfName,
-                                                                            
fullRawComparator,
-                                                                            
cfType == ColumnFamilyType.Super);
-
-            boolean isDense = result.has("is_dense")
-                            ? result.getBoolean("is_dense")
-                            : CFMetaData.calculateIsDense(fullRawComparator, 
columnDefs);
-
-            CellNameType comparator = 
CellNames.fromAbstractType(fullRawComparator, isDense);
-
-            // if we are upgrading, we use id generated from names initially
-            UUID cfId = result.has("cf_id")
-                      ? result.getUUID("cf_id")
-                      : CFMetaData.generateLegacyCfId(ksName, cfName);
-
-            CFMetaData cfm = new CFMetaData(ksName, cfName, cfType, 
comparator, cfId);
-            cfm.isDense(isDense);
-
-            cfm.readRepairChance(result.getDouble("read_repair_chance"));
-            
cfm.dcLocalReadRepairChance(result.getDouble("local_read_repair_chance"));
-            cfm.gcGraceSeconds(result.getInt("gc_grace_seconds"));
-            
cfm.defaultValidator(TypeParser.parse(result.getString("default_validator")));
-            
cfm.keyValidator(TypeParser.parse(result.getString("key_validator")));
-            
cfm.minCompactionThreshold(result.getInt("min_compaction_threshold"));
-            
cfm.maxCompactionThreshold(result.getInt("max_compaction_threshold"));
-            if (result.has("comment"))
-                cfm.comment(result.getString("comment"));
-            if (result.has("memtable_flush_period_in_ms"))
-                
cfm.memtableFlushPeriod(result.getInt("memtable_flush_period_in_ms"));
-            
cfm.caching(CachingOptions.fromString(result.getString("caching")));
-            if (result.has("default_time_to_live"))
-                cfm.defaultTimeToLive(result.getInt("default_time_to_live"));
-            if (result.has("speculative_retry"))
-                
cfm.speculativeRetry(CFMetaData.SpeculativeRetry.fromString(result.getString("speculative_retry")));
-            
cfm.compactionStrategyClass(CFMetaData.createCompactionStrategy(result.getString("compaction_strategy_class")));
-            
cfm.compressionParameters(CompressionParameters.create(fromJsonMap(result.getString("compression_parameters"))));
-            
cfm.compactionStrategyOptions(fromJsonMap(result.getString("compaction_strategy_options")));
-
-            if (result.has("min_index_interval"))
-                cfm.minIndexInterval(result.getInt("min_index_interval"));
-
-            if (result.has("max_index_interval"))
-                cfm.maxIndexInterval(result.getInt("max_index_interval"));
-
-            if (result.has("bloom_filter_fp_chance"))
-                
cfm.bloomFilterFpChance(result.getDouble("bloom_filter_fp_chance"));
-            else
-                cfm.bloomFilterFpChance(cfm.getBloomFilterFpChance());
-
-            if (result.has("dropped_columns"))
-                
cfm.droppedColumns(convertDroppedColumns(result.getMap("dropped_columns", 
UTF8Type.instance, LongType.instance)));
-
-            for (ColumnDefinition cd : columnDefs)
-                cfm.addOrReplaceColumnDefinition(cd);
-
-            return cfm.rebuild();
-        }
-        catch (SyntaxException | ConfigurationException e)
-        {
-            throw new RuntimeException(e);
-        }
+        String ksName = result.getString("keyspace_name");
+        String cfName = result.getString("columnfamily_name");
+
+        AbstractType<?> rawComparator = 
TypeParser.parse(result.getString("comparator"));
+        AbstractType<?> subComparator = result.has("subcomparator") ? 
TypeParser.parse(result.getString("subcomparator")) : null;
+        ColumnFamilyType cfType = 
ColumnFamilyType.valueOf(result.getString("type"));
+
+        AbstractType<?> fullRawComparator = 
CFMetaData.makeRawAbstractType(rawComparator, subComparator);
+
+        List<ColumnDefinition> columnDefs = 
createColumnsFromColumnRows(serializedColumnDefinitions,
+                                                                        ksName,
+                                                                        cfName,
+                                                                        
fullRawComparator,
+                                                                        cfType 
== ColumnFamilyType.Super);
+
+        boolean isDense = result.has("is_dense")
+                        ? result.getBoolean("is_dense")
+                        : CFMetaData.calculateIsDense(fullRawComparator, 
columnDefs);
+
+        CellNameType comparator = 
CellNames.fromAbstractType(fullRawComparator, isDense);
+
+        // if we are upgrading, we use id generated from names initially
+        UUID cfId = result.has("cf_id")
+                  ? result.getUUID("cf_id")
+                  : CFMetaData.generateLegacyCfId(ksName, cfName);
+
+        CFMetaData cfm = new CFMetaData(ksName, cfName, cfType, comparator, 
cfId);
+        cfm.isDense(isDense);
+
+        cfm.readRepairChance(result.getDouble("read_repair_chance"));
+        
cfm.dcLocalReadRepairChance(result.getDouble("local_read_repair_chance"));
+        cfm.gcGraceSeconds(result.getInt("gc_grace_seconds"));
+        
cfm.defaultValidator(TypeParser.parse(result.getString("default_validator")));
+        cfm.keyValidator(TypeParser.parse(result.getString("key_validator")));
+        cfm.minCompactionThreshold(result.getInt("min_compaction_threshold"));
+        cfm.maxCompactionThreshold(result.getInt("max_compaction_threshold"));
+        if (result.has("comment"))
+            cfm.comment(result.getString("comment"));
+        if (result.has("memtable_flush_period_in_ms"))
+            
cfm.memtableFlushPeriod(result.getInt("memtable_flush_period_in_ms"));
+        cfm.caching(CachingOptions.fromString(result.getString("caching")));
+        if (result.has("default_time_to_live"))
+            cfm.defaultTimeToLive(result.getInt("default_time_to_live"));
+        if (result.has("speculative_retry"))
+            
cfm.speculativeRetry(CFMetaData.SpeculativeRetry.fromString(result.getString("speculative_retry")));
+        
cfm.compactionStrategyClass(CFMetaData.createCompactionStrategy(result.getString("compaction_strategy_class")));
+        
cfm.compressionParameters(CompressionParameters.create(fromJsonMap(result.getString("compression_parameters"))));
+        
cfm.compactionStrategyOptions(fromJsonMap(result.getString("compaction_strategy_options")));
+
+        if (result.has("min_index_interval"))
+            cfm.minIndexInterval(result.getInt("min_index_interval"));
+
+        if (result.has("max_index_interval"))
+            cfm.maxIndexInterval(result.getInt("max_index_interval"));
+
+        if (result.has("bloom_filter_fp_chance"))
+            
cfm.bloomFilterFpChance(result.getDouble("bloom_filter_fp_chance"));
+        else
+            cfm.bloomFilterFpChance(cfm.getBloomFilterFpChance());
+
+        if (result.has("dropped_columns"))
+            
cfm.droppedColumns(convertDroppedColumns(result.getMap("dropped_columns", 
UTF8Type.instance, LongType.instance)));
+
+        for (ColumnDefinition cd : columnDefs)
+            cfm.addOrReplaceColumnDefinition(cd);
+
+        return cfm.rebuild();
     }
 
     private static Map<ColumnIdentifier, Long> 
convertDroppedColumns(Map<String, Long> raw)
@@ -1467,15 +1445,7 @@ public class LegacySchemaTables
 
     private static AbstractType<?> parseType(String str)
     {
-        try
-        {
-            return TypeParser.parse(str);
-        }
-        catch (SyntaxException | ConfigurationException e)
-        {
-            // We only use this when reading the schema where we shouldn't get 
an error
-            throw new RuntimeException(e);
-        }
+        return TypeParser.parse(str);
     }
 
     // We allow method overloads, so a function is not uniquely identified by 
its name only, but

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/src/java/org/apache/cassandra/tracing/Tracing.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tracing/Tracing.java 
b/src/java/org/apache/cassandra/tracing/Tracing.java
index d0f496e..930f024 100644
--- a/src/java/org/apache/cassandra/tracing/Tracing.java
+++ b/src/java/org/apache/cassandra/tracing/Tracing.java
@@ -308,11 +308,6 @@ public class Tracing
         {
             StorageProxy.mutate(Arrays.asList(mutation), ConsistencyLevel.ANY);
         }
-        catch (UnavailableException | WriteTimeoutException e)
-        {
-            // should never happen; ANY does not throw UAE or WTE
-            throw new AssertionError(e);
-        }
         catch (OverloadedException e)
         {
             logger.warn("Too many nodes are overloaded to save trace events");

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/test/unit/org/apache/cassandra/cql3/CQLTester.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/CQLTester.java 
b/test/unit/org/apache/cassandra/cql3/CQLTester.java
index 5611ac6..b01ca9e 100644
--- a/test/unit/org/apache/cassandra/cql3/CQLTester.java
+++ b/test/unit/org/apache/cassandra/cql3/CQLTester.java
@@ -366,14 +366,7 @@ public abstract class CQLTester
         tables.add(currentTable);
         String fullQuery = formatQuery(query);
         logger.info(fullQuery);
-        try
-        {
-            QueryProcessor.executeOnceInternal(fullQuery);
-        }
-        catch (RuntimeException ex)
-        {
-            throw ex.getCause();
-        }
+        QueryProcessor.executeOnceInternal(fullQuery);
     }
 
     protected void alterTable(String query)
@@ -387,14 +380,7 @@ public abstract class CQLTester
     {
         String fullQuery = formatQuery(query);
         logger.info(fullQuery);
-        try
-        {
-            QueryProcessor.executeOnceInternal(fullQuery);
-        }
-        catch (RuntimeException ex)
-        {
-            throw ex.getCause();
-        }
+        QueryProcessor.executeOnceInternal(fullQuery);
     }
 
     protected void dropTable(String query)
@@ -415,14 +401,7 @@ public abstract class CQLTester
     {
         String fullQuery = formatQuery(query);
         logger.info(fullQuery);
-        try
-        {
-            QueryProcessor.executeOnceInternal(fullQuery);
-        }
-        catch (RuntimeException ex)
-        {
-            throw ex.getCause();
-        }
+        QueryProcessor.executeOnceInternal(fullQuery);
     }
 
     protected void dropIndex(String query) throws Throwable
@@ -486,32 +465,23 @@ public abstract class CQLTester
 
     protected UntypedResultSet execute(String query, Object... values) throws 
Throwable
     {
-        try
-        {
-            query = formatQuery(query);
+        query = formatQuery(query);
 
-            UntypedResultSet rs;
-            if (usePrepared)
-            {
-                logger.info("Executing: {} with values {}", query, 
formatAllValues(values));
-                rs = QueryProcessor.executeOnceInternal(query, 
transformValues(values));
-            }
-            else
-            {
-                query = replaceValues(query, values);
-                logger.info("Executing: {}", query);
-                rs = QueryProcessor.executeOnceInternal(query);
-            }
-            if (rs != null)
-                logger.info("Got {} rows", rs.size());
-            return rs;
+        UntypedResultSet rs;
+        if (usePrepared)
+        {
+            logger.info("Executing: {} with values {}", query, 
formatAllValues(values));
+            rs = QueryProcessor.executeOnceInternal(query, 
transformValues(values));
         }
-        catch (RuntimeException e)
+        else
         {
-            Throwable cause = e.getCause() != null ? e.getCause() : e;
-            logger.info("Got error: {}", cause.getMessage() == null ? 
cause.toString() : cause.getMessage());
-            throw cause;
+            query = replaceValues(query, values);
+            logger.info("Executing: {}", query);
+            rs = QueryProcessor.executeOnceInternal(query);
         }
+        if (rs != null)
+            logger.info("Got {} rows", rs.size());
+        return rs;
     }
 
     protected void assertRowsNet(int protocolVersion, ResultSet result, 
Object[]... rows)
@@ -660,16 +630,7 @@ public abstract class CQLTester
     {
         try
         {
-            try
-            {
-                execute(query, values);
-            }
-            catch (RuntimeException e)
-            {
-                Throwable cause = e.getCause();
-                if (cause instanceof InvalidRequestException)
-                    throw cause;
-            }
+            execute(query, values);
             String q = USE_PREPARED_VALUES
                      ? query + " (values: " + formatAllValues(values) + ")"
                      : replaceValues(query, values);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/17624248/test/unit/org/apache/cassandra/cql3/ThriftCompatibilityTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/ThriftCompatibilityTest.java 
b/test/unit/org/apache/cassandra/cql3/ThriftCompatibilityTest.java
index 88ee688..3125b28 100644
--- a/test/unit/org/apache/cassandra/cql3/ThriftCompatibilityTest.java
+++ b/test/unit/org/apache/cassandra/cql3/ThriftCompatibilityTest.java
@@ -41,18 +41,9 @@ public class ThriftCompatibilityTest extends SchemaLoader
                                             
.addColumnDefinition(integerColumn("thriftcompat", "JdbcInteger")));
     }
 
-    private static UntypedResultSet execute(String query) throws Throwable
+    private static UntypedResultSet execute(String query)
     {
-        try
-        {
-            return QueryProcessor.executeInternal(String.format(query));
-        }
-        catch (RuntimeException exc)
-        {
-            if (exc.getCause() != null)
-                throw exc.getCause();
-            throw exc;
-        }
+        return QueryProcessor.executeInternal(String.format(query));
     }
 
     /** Test For CASSANDRA-8178 */

Reply via email to