Updated Branches: refs/heads/cassandra-1.1 e172a9b73 -> 98708d817
fix assumption error in CLI when updating/describing keyspace patch by Pavel Yaskevich; reviewed by Dave Brosius for CASSANDRA-4322 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/98708d81 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/98708d81 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/98708d81 Branch: refs/heads/cassandra-1.1 Commit: 98708d817f8df91be4cfcba06c9523027fab881c Parents: e172a9b Author: Pavel Yaskevich <[email protected]> Authored: Sat Sep 8 21:57:46 2012 +0300 Committer: Pavel Yaskevich <[email protected]> Committed: Tue Sep 11 14:11:36 2012 +0300 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/cli/CliClient.java | 38 +++++++++++----- 2 files changed, 27 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/98708d81/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 246bc49..b6fe049 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,7 @@ 1.1.6 * Improve IAuthority interface by introducing fine-grained access permissions and grant/revoke commands (CASSANDRA-4490) + * fix assumption error in CLI when updating/describing keyspace (CASSANDRA-4322) 1.1.5 http://git-wip-us.apache.org/repos/asf/cassandra/blob/98708d81/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 8296253..d0fb543 100644 --- a/src/java/org/apache/cassandra/cli/CliClient.java +++ b/src/java/org/apache/cassandra/cli/CliClient.java @@ -1068,7 +1068,7 @@ public class CliClient sessionState.out.println(mySchemaVersion); validateSchemaIsSettled(mySchemaVersion); keyspacesMap.remove(keyspaceName); - getKSMetaData(keySpace); + getKSMetaData(keyspaceName); } catch (InvalidRequestException e) { @@ -1879,15 +1879,19 @@ public class CliClient * Returns true if this.keySpace is set, false otherwise * @return boolean */ - private boolean hasKeySpace() + private boolean hasKeySpace(boolean printError) { - if (keySpace == null) - { - sessionState.out.println("Not authenticated to a working keyspace."); - return false; - } + boolean hasKeyspace = keySpace != null; - return true; + if (!hasKeyspace && printError) + sessionState.err.println("Not authorized to a working keyspace."); + + return hasKeyspace; + } + + private boolean hasKeySpace() + { + return hasKeySpace(true); } public String getKeySpace() @@ -2142,9 +2146,19 @@ public class CliClient return; int argCount = statement.getChildCount(); - - keyspacesMap.remove(keySpace); - KsDef currentKeySpace = getKSMetaData(keySpace); + + if (keySpace == null && argCount == 0) + { + sessionState.out.println("Authenticate to a Keyspace, before using `describe` or `describe <column_family>`"); + return; + } + + KsDef currentKeySpace = null; + if (keySpace != null) + { + keyspacesMap.remove(keySpace); + currentKeySpace = getKSMetaData(keySpace); + } if (argCount > 1) // in case somebody changes Cli grammar throw new RuntimeException("`describe` command take maximum one argument. See `help describe;`"); @@ -2996,7 +3010,7 @@ public class CliClient public void replayAssumptions(String keyspace) { - if (!CliMain.isConnected() || !hasKeySpace()) + if (!CliMain.isConnected() || !hasKeySpace(false)) return; Map<String, Map<String, String>> cfAssumes = assumptions.get(keyspace);
