diff --git a/src/java/org/apache/cassandra/thrift/CassandraServer.java b/src/java/org/apache/cassandra/thrift/CassandraServer.java index 26495ddb7c..3acbb6f86d 100644 --- a/src/java/org/apache/cassandra/thrift/CassandraServer.java +++ b/src/java/org/apache/cassandra/thrift/CassandraServer.java @@ -815,13 +815,11 @@ public class CassandraServer implements Cassandra.Iface public String system_update_keyspace(KsDef ks_def) throws InvalidRequestException, TException { state().hasKeyspaceListAccess(Permission.WRITE); - + + ThriftValidation.validateTable(ks_def.name); if (ks_def.getCf_defs() != null && ks_def.getCf_defs().size() > 0) throw new InvalidRequestException("Keyspace update must not contain any column family definitions."); - if (DatabaseDescriptor.getTableDefinition(ks_def.name) == null) - throw new InvalidRequestException("Keyspace does not exist."); - try { KSMetaData ksm = new KSMetaData( @@ -935,11 +933,8 @@ public class CassandraServer implements Cassandra.Iface public void set_keyspace(String keyspace) throws InvalidRequestException, TException { - if (DatabaseDescriptor.getTableDefinition(keyspace) == null) - { - throw new InvalidRequestException("Keyspace does not exist"); - } - + ThriftValidation.validateTable(keyspace); + state().setKeyspace(keyspace); } diff --git a/src/java/org/apache/cassandra/thrift/ThriftValidation.java b/src/java/org/apache/cassandra/thrift/ThriftValidation.java index 3570a81771..c9a005789f 100644 --- a/src/java/org/apache/cassandra/thrift/ThriftValidation.java +++ b/src/java/org/apache/cassandra/thrift/ThriftValidation.java @@ -59,11 +59,11 @@ public class ThriftValidation } } - private static void validateTable(String tablename) throws KeyspaceNotDefinedException + public static void validateTable(String tablename) throws KeyspaceNotDefinedException { if (!DatabaseDescriptor.getTables().contains(tablename)) { - throw new KeyspaceNotDefinedException("Keyspace " + tablename + " does not exist in this schema."); + throw new KeyspaceNotDefinedException("Keyspace " + tablename + " does not exist"); } }