You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ee...@apache.org on 2009/12/05 06:27:20 UTC
svn commit: r887499 -
/incubator/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
Author: eevans
Date: Sat Dec 5 05:27:19 2009
New Revision: 887499
URL: http://svn.apache.org/viewvc?rev=887499&view=rev
Log:
cleaner handling of string encoding exceptions
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java?rev=887499&r1=887498&r2=887499&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java Sat Dec 5 05:27:19 2009
@@ -47,56 +47,56 @@
ast = CliCompiler.compileQuery(stmt);
- switch (ast.getType()) {
- case CliParser.NODE_EXIT:
- cleanupAndExit();
- break;
- case CliParser.NODE_THRIFT_GET:
- try
- {
- executeGet(ast);
- }
- catch (UnsupportedEncodingException e)
- {
- throw new RuntimeException(e);
+ try
+ {
+ switch (ast.getType()) {
+ case CliParser.NODE_EXIT:
+ cleanupAndExit();
+ break;
+ case CliParser.NODE_THRIFT_GET:
+ executeGet(ast);
+ break;
+ case CliParser.NODE_HELP:
+ printCmdHelp();
+ break;
+ case CliParser.NODE_THRIFT_SET:
+ executeSet(ast);
+ break;
+ case CliParser.NODE_THRIFT_DEL:
+ executeDelete(ast);
+ break;
+ case CliParser.NODE_THRIFT_COUNT:
+ executeCount(ast);
+ break;
+ case CliParser.NODE_SHOW_CLUSTER_NAME:
+ executeShowProperty(ast, "cluster name");
+ break;
+ case CliParser.NODE_SHOW_CONFIG_FILE:
+ executeShowProperty(ast, "config file");
+ break;
+ case CliParser.NODE_SHOW_VERSION:
+ executeShowProperty(ast, "version");
+ break;
+ case CliParser.NODE_SHOW_TABLES:
+ executeShowTables(ast);
+ break;
+ case CliParser.NODE_DESCRIBE_TABLE:
+ executeDescribeTable(ast);
+ break;
+ case CliParser.NODE_CONNECT:
+ executeConnect(ast);
+ break;
+ case CliParser.NODE_NO_OP:
+ // comment lines come here; they are treated as no ops.
+ break;
+ default:
+ css_.err.println("Invalid Statement (Type: " + ast.getType() + ")");
+ break;
}
- break;
- case CliParser.NODE_HELP:
- printCmdHelp();
- break;
- case CliParser.NODE_THRIFT_SET:
- executeSet(ast);
- break;
- case CliParser.NODE_THRIFT_DEL:
- executeDelete(ast);
- break;
- case CliParser.NODE_THRIFT_COUNT:
- executeCount(ast);
- break;
- case CliParser.NODE_SHOW_CLUSTER_NAME:
- executeShowProperty(ast, "cluster name");
- break;
- case CliParser.NODE_SHOW_CONFIG_FILE:
- executeShowProperty(ast, "config file");
- break;
- case CliParser.NODE_SHOW_VERSION:
- executeShowProperty(ast, "version");
- break;
- case CliParser.NODE_SHOW_TABLES:
- executeShowTables(ast);
- break;
- case CliParser.NODE_DESCRIBE_TABLE:
- executeDescribeTable(ast);
- break;
- case CliParser.NODE_CONNECT:
- executeConnect(ast);
- break;
- case CliParser.NODE_NO_OP:
- // comment lines come here; they are treated as no ops.
- break;
- default:
- css_.err.println("Invalid Statement (Type: " + ast.getType() + ")");
- break;
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ throw new RuntimeException("Unable to encode string as UTF-8", e);
}
}
@@ -156,7 +156,7 @@
}
}
- private void executeDelete(CommonTree ast) throws TException, InvalidRequestException, UnavailableException, TimedOutException
+ private void executeDelete(CommonTree ast) throws TException, InvalidRequestException, UnavailableException, TimedOutException, UnsupportedEncodingException
{
if (!CliMain.isConnected())
return;
@@ -185,21 +185,14 @@
assert columnSpecCnt == 1;
// table.cf['key']['column']
columnName = CliCompiler.getColumn(columnFamilySpec, 0);
- try
- {
- name = columnName.getBytes("UTF-8");
- }
- catch (UnsupportedEncodingException e)
- {
- throw new RuntimeException(e);
- }
+ name = columnName.getBytes("UTF-8");
}
thriftClient_.remove(tableName, key, new ColumnPath(columnFamily, null, name), System.currentTimeMillis(), ConsistencyLevel.ONE);
css_.out.println(String.format("%s removed.", (columnSpecCnt == 0) ? "row" : "column"));
}
private void doSlice(String keyspace, String key, String columnFamily, byte[] superColumnName)
- throws InvalidRequestException, UnavailableException, TimedOutException, TException
+ throws InvalidRequestException, UnavailableException, TimedOutException, TException, UnsupportedEncodingException
{
SliceRange range = new SliceRange(ArrayUtils.EMPTY_BYTE_ARRAY, ArrayUtils.EMPTY_BYTE_ARRAY, true, 1000000);
List<ColumnOrSuperColumn> columns = thriftClient_.get_slice(keyspace, key, new ColumnParent(columnFamily, superColumnName),
@@ -209,28 +202,21 @@
// Print out super columns or columns.
for (ColumnOrSuperColumn cosc : columns)
{
- try
+ if (cosc.isSetSuper_column())
{
- if (cosc.isSetSuper_column())
- {
- SuperColumn superColumn = cosc.super_column;
- css_.out.printf("=> (super_column=%s,", new String(superColumn.name, "UTF-8"));
- for (Column col : superColumn.getColumns())
- css_.out.printf("\n (column=%s, value=%s, timestamp=%d)", new String(col.name, "UTF-8"),
- new String(col.value, "UTF-8"), col.timestamp);
-
- css_.out.println(")");
- }
- else
- {
- Column column = cosc.column;
- css_.out.printf("=> (column=%s, value=%s; timestamp=%d)\n", new String(column.name, "UTF-8"),
- new String(column.value, "UTF-8"), column.timestamp);
- }
+ SuperColumn superColumn = cosc.super_column;
+ css_.out.printf("=> (super_column=%s,", new String(superColumn.name, "UTF-8"));
+ for (Column col : superColumn.getColumns())
+ css_.out.printf("\n (column=%s, value=%s, timestamp=%d)", new String(col.name, "UTF-8"),
+ new String(col.value, "UTF-8"), col.timestamp);
+
+ css_.out.println(")");
}
- catch (UnsupportedEncodingException e)
+ else
{
- throw new RuntimeException(e);
+ Column column = cosc.column;
+ css_.out.printf("=> (column=%s, value=%s; timestamp=%d)\n", new String(column.name, "UTF-8"),
+ new String(column.value, "UTF-8"), column.timestamp);
}
}
@@ -238,7 +224,6 @@
}
// Execute GET statement
- // FIXME: really throw unsupported encoding exception?
private void executeGet(CommonTree ast) throws TException, NotFoundException, InvalidRequestException, UnavailableException, TimedOutException, UnsupportedEncodingException
{
if (!CliMain.isConnected())
@@ -306,8 +291,8 @@
}
// Execute SET statement
- private void executeSet(CommonTree ast) throws TException, InvalidRequestException, UnavailableException, TimedOutException
- {
+ private void executeSet(CommonTree ast) throws TException, InvalidRequestException, UnavailableException, TimedOutException, UnsupportedEncodingException
+ {
if (!CliMain.isConnected())
return;
@@ -325,27 +310,20 @@
byte[] superColumnName = null;
byte[] columnName = null;
- try
+ // table.cf['key']['column'] = 'value'
+ if (columnSpecCnt == 1)
{
- // table.cf['key']['column'] = 'value'
- if (columnSpecCnt == 1)
- {
- // get the column name
- columnName = CliCompiler.getColumn(columnFamilySpec, 0).getBytes("UTF-8");
- }
- // table.cf['key']['super_column']['column'] = 'value'
- else
- {
- assert (columnSpecCnt == 2) : "serious parsing error (this is a bug).";
-
- // get the super column and column names
- superColumnName = CliCompiler.getColumn(columnFamilySpec, 0).getBytes("UTF-8");
- columnName = CliCompiler.getColumn(columnFamilySpec, 1).getBytes("UTF-8");
- }
+ // get the column name
+ columnName = CliCompiler.getColumn(columnFamilySpec, 0).getBytes("UTF-8");
}
- catch (UnsupportedEncodingException e)
+ // table.cf['key']['super_column']['column'] = 'value'
+ else
{
- throw new RuntimeException("Unable to encode column name as UTF-8", e);
+ assert (columnSpecCnt == 2) : "serious parsing error (this is a bug).";
+
+ // get the super column and column names
+ superColumnName = CliCompiler.getColumn(columnFamilySpec, 0).getBytes("UTF-8");
+ columnName = CliCompiler.getColumn(columnFamilySpec, 1).getBytes("UTF-8");
}
// do the insert