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/08/13 20:00:34 UTC

svn commit: r985308 - in /cassandra/trunk: CHANGES.txt src/java/org/apache/cassandra/db/CompactionManager.java test/system/test_thrift_server.py

Author: gdusbabek
Date: Fri Aug 13 18:00:34 2010
New Revision: 985308

URL: http://svn.apache.org/viewvc?rev=985308&view=rev
Log:
handle graveyard cleanups gracefully when there is nothing to delete. patch by gdusbabek, reviewed by jbellis. CASSANDRA-1378

Modified:
    cassandra/trunk/CHANGES.txt
    cassandra/trunk/src/java/org/apache/cassandra/db/CompactionManager.java
    cassandra/trunk/test/system/test_thrift_server.py

Modified: cassandra/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=985308&r1=985307&r2=985308&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Fri Aug 13 18:00:34 2010
@@ -4,6 +4,8 @@ dev
  * add back percentage option for cache size configuration, and replace
    SnakeYAML with YamlBeans (CASSANDRA-1313)
  * restore use of mmap_index_only option (CASSANDRA-1241)
+ * dropping a keyspace with no column families generated an error 
+   (CASSANDRA-1378)
 
 
 0.7-beta1

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/CompactionManager.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/CompactionManager.java?rev=985308&r1=985307&r2=985308&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/CompactionManager.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/CompactionManager.java Fri Aug 13 18:00:34 2010
@@ -86,6 +86,9 @@ public class CompactionManager implement
             {
                 logger.debug("Cleaning up abandoned column families...");
                 ColumnFamily dropped = SystemTable.getDroppedCFs();
+                if (dropped == null)
+                    // there is nothing that needs to be cleaned up.
+                    return null;
                 Collection<IColumn> successes = new ArrayList<IColumn>();
                 for (IColumn col : dropped.getSortedColumns())
                 {

Modified: cassandra/trunk/test/system/test_thrift_server.py
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_thrift_server.py?rev=985308&r1=985307&r2=985308&view=diff
==============================================================================
--- cassandra/trunk/test/system/test_thrift_server.py (original)
+++ cassandra/trunk/test/system/test_thrift_server.py Fri Aug 13 18:00:34 2010
@@ -1176,6 +1176,19 @@ class TestMutations(ThriftTester):
         def get_second_ks():
             client.describe_keyspace('RenameKeyspace')
         _expect_exception(get_second_ks, NotFoundException)
+    
+    def test_create_then_drop_ks(self):
+        keyspace = KsDef('AddThenDrop', 
+                strategy_class='org.apache.cassandra.locator.RackUnawareStrategy',
+                replication_factor=1,
+                cf_defs=[])
+        def test_existence():
+            client.describe_keyspace(keyspace.name)
+        _expect_exception(test_existence, NotFoundException)
+        client.set_keyspace('system')
+        client.system_add_keyspace(keyspace)
+        test_existence()
+        client.system_drop_keyspace(keyspace.name)
 
     def test_column_validators(self):
         ks = 'Keyspace1'