diff --git a/CHANGES.txt b/CHANGES.txt index a1055586e6..cbe8498489 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,6 @@ 1.0.8 + * Return InvalidRequest when using a keyspace that doesn't exist + (CASSANDRA-3764) * disallow user modification of System keyspace (CASSANDRA-3738) * allow using sstable2json on secondary index data (CASSANDRA-3738) * (cqlsh) add DESCRIBE COLUMNFAMILIES (CASSANDRA-3586) diff --git a/src/java/org/apache/cassandra/service/ClientState.java b/src/java/org/apache/cassandra/service/ClientState.java index bc8e16f6d3..0cac528905 100644 --- a/src/java/org/apache/cassandra/service/ClientState.java +++ b/src/java/org/apache/cassandra/service/ClientState.java @@ -30,6 +30,7 @@ import org.apache.cassandra.auth.AuthenticatedUser; import org.apache.cassandra.auth.Permission; import org.apache.cassandra.auth.Resources; import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.config.Schema; import org.apache.cassandra.db.Table; import org.apache.cassandra.thrift.AuthenticationException; import org.apache.cassandra.thrift.InvalidRequestException; @@ -70,8 +71,10 @@ public class ClientState return keyspace; } - public void setKeyspace(String ks) + public void setKeyspace(String ks) throws InvalidRequestException { + if (Schema.instance.getKSMetaData(ks) == null) + throw new InvalidRequestException("Keyspace '" + ks + "' does not exist"); keyspace = ks; }