You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/10/13 17:47:43 UTC
svn commit: r824815 - in /incubator/cassandra/branches/cassandra-0.4:
src/java/org/apache/cassandra/service/CassandraServer.java
test/system/test_server.py
Author: jbellis
Date: Tue Oct 13 15:47:43 2009
New Revision: 824815
URL: http://svn.apache.org/viewvc?rev=824815&view=rev
Log:
Add missing validateKey calls for inserts, and move get key validation where it's more visible. Also remove inconsistent trim-ing of keys. patch by jbellis; tested by Eric Lubow for CASSANDRA-486
Modified:
incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/service/CassandraServer.java
incubator/cassandra/branches/cassandra-0.4/test/system/test_server.py
Modified: incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/service/CassandraServer.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/service/CassandraServer.java?rev=824815&r1=824814&r2=824815&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/service/CassandraServer.java (original)
+++ incubator/cassandra/branches/cassandra-0.4/src/java/org/apache/cassandra/service/CassandraServer.java Tue Oct 13 15:47:43 2009
@@ -80,11 +80,6 @@
Map<String, ColumnFamily> columnFamilyKeyMap = new HashMap<String,ColumnFamily>();
- for (ReadCommand command: commands)
- {
- ThriftValidation.validateKey(command.key);
- }
-
if (consistency_level == ConsistencyLevel.ZERO)
{
throw new InvalidRequestException("Consistency level zero may not be applied to read operations");
@@ -238,13 +233,19 @@
if (predicate.column_names != null)
{
for (String key: keys)
+ {
+ ThriftValidation.validateKey(key);
commands.add(new SliceByNamesReadCommand(keyspace, key, column_parent, predicate.column_names));
+ }
ThriftValidation.validateColumns(keyspace, column_parent, predicate.column_names);
}
else
{
for (String key: keys)
+ {
+ ThriftValidation.validateKey(key);
commands.add(new SliceFromReadCommand(keyspace, key, column_parent, range.start, range.finish, range.reversed, range.count));
+ }
ThriftValidation.validateRange(keyspace, column_parent, range);
}
@@ -318,6 +319,7 @@
List<ReadCommand> commands = new ArrayList<ReadCommand>();
for (String key: keys)
{
+ ThriftValidation.validateKey(key);
commands.add(new SliceByNamesReadCommand(table, key, path, nameAsList));
}
@@ -380,6 +382,7 @@
List<ReadCommand> commands = new ArrayList<ReadCommand>();
for (String key: keys)
{
+ ThriftValidation.validateKey(key);
commands.add(new SliceFromReadCommand(table, key, column_parent, ArrayUtils.EMPTY_BYTE_ARRAY, ArrayUtils.EMPTY_BYTE_ARRAY, true, Integer.MAX_VALUE));
}
@@ -409,7 +412,7 @@
ThriftValidation.validateKey(key);
ThriftValidation.validateColumnPath(table, column_path);
- RowMutation rm = new RowMutation(table, key.trim());
+ RowMutation rm = new RowMutation(table, key);
try
{
rm.add(new QueryPath(column_path), value, timestamp);
@@ -426,6 +429,7 @@
{
if (logger.isDebugEnabled())
logger.debug("batch_insert");
+ ThriftValidation.validateKey(key);
for (String cfName : cfmap.keySet())
{
@@ -453,9 +457,10 @@
{
if (logger.isDebugEnabled())
logger.debug("remove");
+ ThriftValidation.validateKey(key);
ThriftValidation.validateColumnPathOrParent(table, column_path);
- RowMutation rm = new RowMutation(table, key.trim());
+ RowMutation rm = new RowMutation(table, key);
rm.delete(new QueryPath(column_path), timestamp);
doInsert(consistency_level, rm);
Modified: incubator/cassandra/branches/cassandra-0.4/test/system/test_server.py
URL: http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.4/test/system/test_server.py?rev=824815&r1=824814&r2=824815&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.4/test/system/test_server.py (original)
+++ incubator/cassandra/branches/cassandra-0.4/test/system/test_server.py Tue Oct 13 15:47:43 2009
@@ -289,6 +289,11 @@
def test_bad_calls(self):
# supercolumn in a non-super CF
_expect_exception(lambda: client.insert('Keyspace1', 'key1', ColumnPath('Standard1', 'x', 'y'), 'value', 0, ConsistencyLevel.ONE), InvalidRequestException)
+ # empty key
+ _expect_exception(lambda: client.get('Keyspace1', '', ColumnPath('Standard1', column='c1'), ConsistencyLevel.ONE), InvalidRequestException)
+ cfmap = {'Super1': [ColumnOrSuperColumn(super_column=c) for c in _SUPER_COLUMNS],
+ 'Super2': [ColumnOrSuperColumn(super_column=c) for c in _SUPER_COLUMNS]}
+ _expect_exception(lambda: client.batch_insert('Keyspace1', '', cfmap, ConsistencyLevel.ONE), InvalidRequestException)
# get doesn't specify column name
_expect_exception(lambda: client.get('Keyspace1', 'key1', ColumnPath('Standard1'), ConsistencyLevel.ONE), InvalidRequestException)
# supercolumn in a non-super CF