From 7a98d7bd2c6ee8df54efa2c9deca29209e06bc69 Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Mon, 8 Nov 2010 20:27:44 +0000 Subject: [PATCH] replace ad-hoc checks in update/set keyspace with ThriftValidation.validateTable patch by jbellis git-svn-id: https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.7@1032693 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/cassandra/thrift/CassandraServer.java | 13 ++++--------- .../apache/cassandra/thrift/ThriftValidation.java | 4 ++-- 2 files changed, 6 insertions(+), 11 deletions(-) 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"); } }