Author: jbellis
Date: Thu Sep  8 16:31:27 2011
New Revision: 1166779

URL: http://svn.apache.org/viewvc?rev=1166779&view=rev
Log:
merge from 0.8

Modified:
    cassandra/trunk/   (props changed)
    cassandra/trunk/CHANGES.txt
    cassandra/trunk/NEWS.txt
    cassandra/trunk/conf/cassandra-env.sh
    cassandra/trunk/contrib/   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
   (props changed)
    
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
   (props changed)
    cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
    
cassandra/trunk/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java
    cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
    
cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java
    
cassandra/trunk/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java
    cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java
    cassandra/trunk/src/java/org/apache/cassandra/utils/BloomFilter.java
    cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java
    
cassandra/trunk/test/unit/org/apache/cassandra/thrift/ThriftValidationTest.java

Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep  8 16:31:27 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
 /cassandra/branches/cassandra-0.7:1026516-1163782
 /cassandra/branches/cassandra-0.7.0:1053690-1055654
-/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1166261
 /cassandra/branches/cassandra-0.8.0:1125021-1130369
 /cassandra/branches/cassandra-0.8.1:1101014-1125018
 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689

Modified: cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Thu Sep  8 16:31:27 2011
@@ -68,6 +68,18 @@
    (CASSANDRA-3119)
  * rename CQL type names to match expected SQL behavior (CASSANDRA-3149)
 
+
+0.8.6
+ * avoid trying to watch cassandra-topology.properties when loaded from jar
+   (CASSANDRA-3138)
+ * prevent users from creating keyspaces with LocalStrategy replication
+   (CASSANDRA-3139)
+ * fix CLI `show schema;` to output correct keyspace definition statement
+   (CASSANDRA-3129)
+ * CustomTThreadPoolServer to log TTransportException at DEBUG level
+   (CASSANDRA-3142)
+
+
 0.8.5
  * fix NPE when encryption_options is unspecified (CASSANDRA-3007)
  * include column name in validation failure exceptions (CASSANDRA-2849)
@@ -121,6 +133,10 @@
  * bundle sstableloader with the debian package (CASSANDRA-3113)
  * don't try to build secondary indexes when there is none (CASSANDRA-3123)
  * improve SSTableSimpleUnsortedWriter speed for large rows (CASSANDRA-3122)
+ * handle keyspace arguments correctly in nodetool snapshot (CASSANDRA-3038)
+ * Fix SSTableImportTest on windows (CASSANDRA-3043)
+ * expose compactionThroughputMbPerSec through JMX (CASSANDRA-3117)
+ * log keyspace and CF of large rows being compacted
 
 
 0.8.4
@@ -182,7 +198,7 @@
  * allow deleting a row and updating indexed columns in it in the
    same mutation (CASSANDRA-2773)
  * Expose number of threads blocked on submitting memtable to flush
-   (CASSANDRA-2817)
+   in JMX (CASSANDRA-2817)
  * add ability to return "endpoints" to nodetool (CASSANDRA-2776)
  * Add support for multiple (comma-delimited) coordinator addresses
    to ColumnFamilyInputFormat (CASSANDRA-2807)

Modified: cassandra/trunk/NEWS.txt
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/NEWS.txt?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/NEWS.txt (original)
+++ cassandra/trunk/NEWS.txt Thu Sep  8 16:31:27 2011
@@ -64,9 +64,17 @@ Other
 0.8.5
 =====
 
+Features
+--------
+    - SSTables copied to a data directory can be loaded by a live node through
+      nodetool refresh (may be handy to load snapshots).
+    - The configured compaction throughput is exposed through JMX.
+
 Other
 -----
-    - The sstableloader is now bundled with the debian package
+    - The sstableloader is now bundled with the debian package.
+    - Repair detects when a participating node is dead and fails instead of
+      hanging forever.
 
 
 0.8.4

Modified: cassandra/trunk/conf/cassandra-env.sh
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/conf/cassandra-env.sh?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/conf/cassandra-env.sh (original)
+++ cassandra/trunk/conf/cassandra-env.sh Thu Sep  8 16:31:27 2011
@@ -117,7 +117,12 @@ JVM_OPTS="$JVM_OPTS -XX:ThreadPriorityPo
 JVM_OPTS="$JVM_OPTS -Xms${MAX_HEAP_SIZE}"
 JVM_OPTS="$JVM_OPTS -Xmx${MAX_HEAP_SIZE}"
 JVM_OPTS="$JVM_OPTS -Xmn${HEAP_NEWSIZE}"
-JVM_OPTS="$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError" 
+JVM_OPTS="$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError"
+
+# set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR
+if [ "x$CASSANDRA_HEAPDUMP_DIR" != "x" ]; then
+    JVM_OPTS="$JVM_OPTS 
-XX:HeapDumpPath=$CASSANDRA_HEAPDUMP_DIR/cassandra-`date +%s`-pid$$.hprof"
+fi
 
 if [ "`uname`" = "Linux" ] ; then
     # reduce the per-thread stack size to minimize the impact of Thrift

Propchange: cassandra/trunk/contrib/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep  8 16:31:27 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
 /cassandra/branches/cassandra-0.7/contrib:1026516-1163782
 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
-/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1166261
 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369
 /cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018
 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep  8 16:31:27 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1163782
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1166261
 
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369
 
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1101014-1125018
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep  8 16:31:27 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1163782
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1166261
 
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1130369
 
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1101014-1125018
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep  8 16:31:27 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1163782
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1166261
 
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1125021-1130369
 
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1101014-1125018
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep  8 16:31:27 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1163782
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1166261
 
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1125021-1130369
 
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1101014-1125018
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689

Propchange: 
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep  8 16:31:27 2011
@@ -1,7 +1,7 @@
 
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
 
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1163782
 
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1163783,1164068-1164069,1164399,1164634,1164657,1165218,1166261
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1166261
 
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1125021-1130369
 
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1101014-1125018
 
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689

Modified: cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cli/CliClient.java Thu Sep  8 
16:31:27 2011
@@ -1583,11 +1583,10 @@ public class CliClient
      */
     private void showKeyspace(StringBuilder sb, KsDef ksDef)
     {
-
         sb.append("create keyspace " + ksDef.name);
-        if (ksDef.isSetReplication_factor())
-            writeAttr(sb, false, "replication_factor", 
ksDef.getReplication_factor());
+
         writeAttr(sb, true, "placement_strategy", 
normaliseType(ksDef.strategy_class, "org.apache.cassandra.locator"));
+
         if (ksDef.strategy_options != null && 
!ksDef.strategy_options.isEmpty())
         {
             final StringBuilder opts = new StringBuilder();

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java 
(original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java 
Thu Sep  8 16:31:27 2011
@@ -58,14 +58,22 @@ public class PropertyFileSnitch extends 
     public PropertyFileSnitch() throws ConfigurationException
     {
         reloadConfiguration();
-        Runnable runnable = new WrappedRunnable()
+        try
         {
-            protected void runMayThrow() throws ConfigurationException
+            FBUtilities.resourceToFile(RACK_PROPERTY_FILENAME);
+            Runnable runnable = new WrappedRunnable()
             {
-                reloadConfiguration();
-            }
-        };
-        ResourceWatcher.watch(RACK_PROPERTY_FILENAME, runnable, 60 * 1000);
+                protected void runMayThrow() throws ConfigurationException
+                {
+                    reloadConfiguration();
+                }
+            };
+            ResourceWatcher.watch(RACK_PROPERTY_FILENAME, runnable, 60 * 1000);
+        }
+        catch (ConfigurationException ex)
+        {
+            logger.debug(RACK_PROPERTY_FILENAME + " found, but does not look 
like a plain file. Will not watch it for changes");
+        }
     }
 
     /**

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
Thu Sep  8 16:31:27 2011
@@ -579,6 +579,11 @@ public class StorageService implements I
         return joined;
     }
 
+    public int getCompactionThroughputMbPerSec()
+    {
+        return DatabaseDescriptor.getCompactionThroughputMbPerSec();
+    }
+
     public void setCompactionThroughputMbPerSec(int value) {
         DatabaseDescriptor.setCompactionThroughputMbPerSec(value);
     }
@@ -818,7 +823,7 @@ public class StorageService implements I
      */
     private void handleStateBootstrap(InetAddress endpoint, String[] pieces)
     {
-        assert pieces.length == 2;
+        assert pieces.length >= 2;
         Token token = getPartitioner().getTokenFactory().fromString(pieces[1]);
 
         if (logger_.isDebugEnabled())
@@ -905,7 +910,7 @@ public class StorageService implements I
      */
     private void handleStateLeaving(InetAddress endpoint, String[] pieces)
     {
-        assert pieces.length == 2;
+        assert pieces.length >= 2;
         String moveValue = pieces[1];
         Token token = getPartitioner().getTokenFactory().fromString(moveValue);
 
@@ -940,7 +945,7 @@ public class StorageService implements I
      */
     private void handleStateLeft(InetAddress endpoint, String[] pieces)
     {
-        assert pieces.length == 2;
+        assert pieces.length >= 2;
         Token token = getPartitioner().getTokenFactory().fromString(pieces[1]);
 
         if (logger_.isDebugEnabled())
@@ -957,7 +962,7 @@ public class StorageService implements I
      */
     private void handleStateMoving(InetAddress endpoint, String[] pieces)
     {
-        assert pieces.length == 2;
+        assert pieces.length >= 2;
         Token token = getPartitioner().getTokenFactory().fromString(pieces[1]);
 
         if (logger_.isDebugEnabled())

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java 
(original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java 
Thu Sep  8 16:31:27 2011
@@ -331,6 +331,7 @@ public interface StorageServiceMBean
 
     public int getExceptionCount();
 
+    public int getCompactionThroughputMbPerSec();
     public void setCompactionThroughputMbPerSec(int value);
 
     public void bulkLoad(String directory);

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/thrift/CustomTThreadPoolServer.java
 Thu Sep  8 16:31:27 2011
@@ -193,6 +193,8 @@ public class CustomTThreadPoolServer ext
             catch (TTransportException ttx)
             {
                 // Assume the client died and continue silently
+                // Log at debug to allow debugging of "frame too large" errors 
(see CASSANDRA-3142).
+                LOGGER.debug("Thrift transport error occurred during 
processing of message.", ttx);
             }
             catch (TException tx)
             {

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=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java 
Thu Sep  8 16:31:27 2011
@@ -23,10 +23,16 @@ package org.apache.cassandra.thrift;
 import java.nio.ByteBuffer;
 import java.util.*;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.cassandra.config.*;
 import org.apache.cassandra.db.*;
 import org.apache.cassandra.db.index.SecondaryIndex;
-import org.apache.cassandra.db.marshal.*;
+import org.apache.cassandra.db.marshal.AbstractType;
+import org.apache.cassandra.db.marshal.AsciiType;
+import org.apache.cassandra.db.marshal.MarshalException;
+import org.apache.cassandra.db.marshal.TypeParser;
 import org.apache.cassandra.db.migration.Migration;
 import org.apache.cassandra.dht.IPartitioner;
 import org.apache.cassandra.dht.RandomPartitioner;
@@ -35,8 +41,6 @@ import org.apache.cassandra.locator.*;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.ByteBufferUtil;
 import org.apache.cassandra.utils.FBUtilities;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * This has a lot of building blocks for CassandraServer to call to make sure 
it has valid input
@@ -676,6 +680,10 @@ public class ThriftValidation
         TokenMetadata tmd = StorageService.instance.getTokenMetadata();
         IEndpointSnitch eps = DatabaseDescriptor.getEndpointSnitch();
         Class<? extends AbstractReplicationStrategy> cls = 
AbstractReplicationStrategy.getClass(ks_def.strategy_class);
+
+        if (cls.equals(LocalStrategy.class))
+            throw new ConfigurationException("Unable to use given strategy 
class: LocalStrategy is reserved for internal use.");
+
         AbstractReplicationStrategy.createReplicationStrategy(ks_def.name, 
cls, tmd, eps, options);
     }
 

Modified: cassandra/trunk/src/java/org/apache/cassandra/utils/BloomFilter.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/utils/BloomFilter.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/utils/BloomFilter.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/utils/BloomFilter.java Thu 
Sep  8 16:31:27 2011
@@ -70,7 +70,8 @@ public class BloomFilter extends Filter
                                       numElements, bucketsPerElement, 
targetBucketsPerElem));
         }
         BloomCalculations.BloomSpecification spec = 
BloomCalculations.computeBloomSpec(bucketsPerElement);
-        logger.debug("Creating bloom filter for {} elements and spec {}", 
numElements, spec);
+        if (logger.isTraceEnabled())
+            logger.trace("Creating bloom filter for {} elements and spec {}", 
numElements, spec);
         return new BloomFilter(spec.K, bucketsFor(numElements, 
spec.bucketsPerElement));
     }
 

Modified: cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/cli/CliTest.java Thu Sep  8 
16:31:27 2011
@@ -127,9 +127,7 @@ public class CliTest extends CleanupHelp
         "drop index on '123'.617070;",
         "drop index on '123'.'-617071';",
         "drop index on CF3.'big world';",
-        "update keyspace TestKeySpace with 
placement_strategy='org.apache.cassandra.locator.LocalStrategy' and 
durable_writes = false;",
-        "update keyspace TestKeySpace with strategy_options={DC1:3, DC2:4, 
DC5:1};",
-        "update keyspace TestKeySpace with strategy_options=[{DC1:3, DC2:4, 
DC5:1}];",
+        "update keyspace TestKeySpace with durable_writes = false;",
         "assume 123 comparator as utf8;",
         "assume 123 sub_comparator as integer;",
         "assume 123 validator as lexicaluuid;",
@@ -172,6 +170,8 @@ public class CliTest extends CleanupHelp
         "get myCF['key']['scName']",
         "assume CF3 keys as utf8;",
         "use TestKEYSpace;",
+        "update keyspace TestKeySpace with 
placement_strategy='org.apache.cassandra.locator.NetworkTopologyStrategy';",
+        "update keyspace TestKeySpace with strategy_options=[{DC1:3, DC2:4, 
DC5:1}];",
         "describe cluster;",
         "help describe cluster;",
         "show cluster name",

Modified: 
cassandra/trunk/test/unit/org/apache/cassandra/thrift/ThriftValidationTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/thrift/ThriftValidationTest.java?rev=1166779&r1=1166778&r2=1166779&view=diff
==============================================================================
--- 
cassandra/trunk/test/unit/org/apache/cassandra/thrift/ThriftValidationTest.java 
(original)
+++ 
cassandra/trunk/test/unit/org/apache/cassandra/thrift/ThriftValidationTest.java 
Thu Sep  8 16:31:27 2011
@@ -23,14 +23,16 @@ package org.apache.cassandra.thrift;
 
 import java.nio.ByteBuffer;
 
-import org.apache.cassandra.config.*;
-import org.apache.cassandra.db.marshal.AsciiType;
-import org.apache.cassandra.db.marshal.UTF8Type;
-
 import org.junit.Test;
 
 import org.apache.cassandra.CleanupHelper;
 import org.apache.cassandra.config.CFMetaData;
+import org.apache.cassandra.config.ConfigurationException;
+import org.apache.cassandra.config.Schema;
+import org.apache.cassandra.db.marshal.AsciiType;
+import org.apache.cassandra.db.marshal.UTF8Type;
+import org.apache.cassandra.locator.LocalStrategy;
+import org.apache.cassandra.locator.NetworkTopologyStrategy;
 import org.apache.cassandra.utils.FBUtilities;
 
 public class ThriftValidationTest extends CleanupHelper
@@ -137,4 +139,56 @@ public class ThriftValidationTest extend
 
         assert gotException : "expected InvalidRequestException but not 
received.";
     }
+
+    @Test
+    public void testValidateKsDef()
+    {
+        KsDef ks_def = new KsDef()
+                            .setName("keyspaceValid")
+                            
.setStrategy_class(LocalStrategy.class.getSimpleName());
+
+
+        boolean gotException = false;
+
+        try
+        {
+            ThriftValidation.validateKsDef(ks_def);
+        }
+        catch (ConfigurationException e)
+        {
+            gotException = true;
+        }
+
+        assert gotException : "expected ConfigurationException but not 
received.";
+
+        ks_def.setStrategy_class(LocalStrategy.class.getName());
+
+        gotException = false;
+
+        try
+        {
+            ThriftValidation.validateKsDef(ks_def);
+        }
+        catch (ConfigurationException e)
+        {
+            gotException = true;
+        }
+
+        assert gotException : "expected ConfigurationException but not 
received.";
+
+        ks_def.setStrategy_class(NetworkTopologyStrategy.class.getName());
+
+        gotException = false;
+
+        try
+        {
+            ThriftValidation.validateKsDef(ks_def);
+        }
+        catch (ConfigurationException e)
+        {
+            gotException = true;
+        }
+
+        assert !gotException : "got unexpected ConfigurationException";
+    }
 }


Reply via email to