You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by gd...@apache.org on 2010/05/07 15:57:20 UTC

svn commit: r942074 - in /cassandra/trunk: src/java/org/apache/cassandra/avro/AvroValidation.java src/java/org/apache/cassandra/thrift/ThriftValidation.java test/system/test_thrift_server.py

Author: gdusbabek
Date: Fri May  7 13:57:20 2010
New Revision: 942074

URL: http://svn.apache.org/viewvc?rev=942074&view=rev
Log:
return error when mutating a non-existant CF. Patch by Sylvain Lebresne, reviewed by Gary Dusbabek. CASSANDRA-1036

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java
    cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java
    cassandra/trunk/test/system/test_thrift_server.py

Modified: cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java?rev=942074&r1=942073&r2=942074&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/avro/AvroValidation.java Fri May  7 13:57:20 2010
@@ -185,6 +185,7 @@ public class AvroValidation {
 
     static void validateDeletion(String keyspace, String  cfName, Deletion del) throws InvalidRequestException
     {
+        validateColumnFamily(keyspace, cfName);
         if (del.super_column == null && del.predicate == null)
             throw newInvalidRequestException("A Deletion must have a SuperColumn, a SlicePredicate, or both.");
 

Modified: cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=942074&r1=942073&r2=942074&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java Fri May  7 13:57:20 2010
@@ -260,6 +260,7 @@ public class ThriftValidation
 
     public static void validateDeletion(String keyspace, String cfName, Deletion del) throws InvalidRequestException
     {
+        validateColumnFamily(keyspace, cfName);
         if (del.predicate != null)
         {
             validateSlicePredicate(keyspace, cfName, del.super_column, del.predicate);

Modified: cassandra/trunk/test/system/test_thrift_server.py
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_thrift_server.py?rev=942074&r1=942073&r2=942074&view=diff
==============================================================================
--- cassandra/trunk/test/system/test_thrift_server.py (original)
+++ cassandra/trunk/test/system/test_thrift_server.py Fri May  7 13:57:20 2010
@@ -563,6 +563,22 @@ class TestMutations(ThriftTester):
                                  ConsistencyLevel.ONE)
         _expect_exception(send_range, InvalidRequestException)
 
+    def test_batch_mutate_does_not_accept_cosc_on_undefined_cf(self):
+        def bad_cf():
+            _set_keyspace('Keyspace1')
+            col = ColumnOrSuperColumn(column=Column("foo", 'bar', 0))
+            client.batch_mutate({'key_36': {'Undefined': [Mutation(col)]}},
+                                 ConsistencyLevel.ONE)
+        _expect_exception(bad_cf, InvalidRequestException)
+
+    def test_batch_mutate_does_not_accept_deletion_on_undefined_cf(self):
+        def bad_cf():
+            _set_keyspace('Keyspace1')
+            d = Deletion(2, predicate=SlicePredicate(column_names=['baz']))
+            client.batch_mutate({'key_37': {'Undefined':[Mutation(deletion=d)]}},
+                                 ConsistencyLevel.ONE)
+        _expect_exception(bad_cf, InvalidRequestException)
+
     def test_column_name_lengths(self):
         _set_keyspace('Keyspace1')
         _expect_exception(lambda: client.insert('key1', ColumnParent('Standard1'), Column('', 'value', 0), ConsistencyLevel.ONE), InvalidRequestException)