Author: eevans
Date: Wed Feb 24 16:37:14 2010
New Revision: 915856

URL: http://svn.apache.org/viewvc?rev=915856&view=rev
Log:
cassandra-cli: friendlier error messages

 * Print a useful error message (instead of an assertion error) when
   column name is ommitted on set.
 * Trap InvalidRequestExceptions and print the "why" string (which tends
   to be quite informative).

Patch by eevans; reviewed by jbellis for CASSANDRA-738

Modified:
    
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cli/CliClient.java
    
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cli/CliMain.java

Modified: 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cli/CliClient.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cli/CliClient.java?rev=915856&r1=915855&r2=915856&view=diff
==============================================================================
--- 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cli/CliClient.java
 (original)
+++ 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cli/CliClient.java
 Wed Feb 24 16:37:14 2010
@@ -399,9 +399,15 @@
 
         byte[] superColumnName = null;
         byte[] columnName = null;
- 
+
+        // table.cf['key']
+        if (columnSpecCnt == 0)
+        {
+            css_.err.println("No column name specified, (type 'help' or '?' 
for help on syntax).");
+            return;
+        }
         // table.cf['key']['column'] = 'value'
-        if (columnSpecCnt == 1)
+        else if (columnSpecCnt == 1)
         {
             // get the column name
             columnName = CliCompiler.getColumn(columnFamilySpec, 
0).getBytes("UTF-8");

Modified: 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cli/CliMain.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cli/CliMain.java?rev=915856&r1=915855&r2=915856&view=diff
==============================================================================
--- 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cli/CliMain.java
 (original)
+++ 
incubator/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/cli/CliMain.java
 Wed Feb 24 16:37:14 2010
@@ -21,6 +21,7 @@
 import jline.ConsoleReader;
 import jline.History;
 import org.apache.cassandra.thrift.Cassandra;
+import org.apache.cassandra.thrift.InvalidRequestException;
 import org.apache.thrift.protocol.TBinaryProtocol;
 import org.apache.thrift.transport.TFramedTransport;
 import org.apache.thrift.transport.TSocket;
@@ -172,9 +173,15 @@
         {
             cliClient_.executeCLIStmt(query);
         }
+        catch (InvalidRequestException ire)
+        {
+            css_.err.println(ire.why);
+            if (css_.debug)
+                ire.printStackTrace();
+        }
         catch (Exception e)
         {
-            System.err.println("Exception " + e.getMessage());
+            css_.err.println("Exception " + e.getMessage());
             if (css_.debug)
                 e.printStackTrace();
 


Reply via email to