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)


Reply via email to