Author: jbellis
Date: Tue May 10 15:18:32 2011
New Revision: 1101501

URL: http://svn.apache.org/viewvc?rev=1101501&view=rev
Log:
extract validateReplicationFactor & handle non-numeric RF attempts
patch by jbellis

Modified:
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/OldNetworkTopologyStrategy.java
    
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/SimpleStrategy.java

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java?rev=1101501&r1=1101500&r2=1101501&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
 Tue May 10 15:18:32 2011
@@ -289,4 +289,19 @@ public abstract class AbstractReplicatio
         String className = cls.contains(".") ? cls : 
"org.apache.cassandra.locator." + cls;
         return FBUtilities.classForName(className, "replication strategy");
     }
+
+    protected void validateReplicationFactor(String rf) throws 
ConfigurationException
+    {
+        try
+        {
+            if (Integer.parseInt(rf) < 0)
+            {
+                throw new ConfigurationException("Replication factor must be 
non-negative; found " + rf);
+            }
+        }
+        catch (NumberFormatException e2)
+        {
+            throw new ConfigurationException("Replication factor must be 
numeric; found " + rf);
+        }
+    }
 }

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java?rev=1101501&r1=1101500&r2=1101501&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java
 Tue May 10 15:18:32 2011
@@ -146,13 +146,9 @@ public class NetworkTopologyStrategy ext
 
     public void validateOptions() throws ConfigurationException
     {
-        for (Entry<String,String> e : this.configOptions.entrySet())
+        for (Entry<String, String> e : this.configOptions.entrySet())
         {
-            int rf = Integer.parseInt(e.getValue());
-            if (rf < 0)
-            {
-                throw new ConfigurationException("Replication factor for NTS 
must be non-negative. dc: " +e.getKey()+", rf: "+rf);
-            }
+            validateReplicationFactor(e.getValue());
         }
 
     }

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/OldNetworkTopologyStrategy.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/OldNetworkTopologyStrategy.java?rev=1101501&r1=1101500&r2=1101501&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/OldNetworkTopologyStrategy.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/OldNetworkTopologyStrategy.java
 Tue May 10 15:18:32 2011
@@ -111,18 +111,10 @@ public class OldNetworkTopologyStrategy 
 
     public void validateOptions() throws ConfigurationException
     {
-        if (this.configOptions == null)
+        if (configOptions == null || configOptions.get("replication_factor") 
== null)
         {
-            throw new ConfigurationException("OldNetworkTopologyStrategy 
requires a replication_factor strategy option.");
-        }
-        if (this.configOptions.get("replication_factor") == null)
-        {
-            throw new ConfigurationException("OldNetworkTopologyStrategy 
requires a replication_factor strategy option.");
-        }
-        int rf = 
Integer.parseInt(this.configOptions.get("replication_factor"));
-        if (rf < 0)
-        {
-            throw new ConfigurationException("Replication factor for 
OldNetworkTopologyStrategy must be non-negative, "+rf+" given.");
+            throw new ConfigurationException("SimpleStrategy requires a 
replication_factor strategy option.");
         }
+        validateReplicationFactor(configOptions.get("replication_factor"));
     }
 }

Modified: 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/SimpleStrategy.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/SimpleStrategy.java?rev=1101501&r1=1101500&r2=1101501&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/SimpleStrategy.java
 (original)
+++ 
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/SimpleStrategy.java
 Tue May 10 15:18:32 2011
@@ -70,18 +70,10 @@ public class SimpleStrategy extends Abst
 
     public void validateOptions() throws ConfigurationException
     {
-        if (this.configOptions == null)
+        if (configOptions == null || configOptions.get("replication_factor") 
== null)
         {
             throw new ConfigurationException("SimpleStrategy requires a 
replication_factor strategy option.");
         }
-        if (this.configOptions.get("replication_factor") == null)
-        {
-            throw new ConfigurationException("SimpleStrategy requires a 
replication_factor strategy option.");
-        }
-        int rf = 
Integer.parseInt(this.configOptions.get("replication_factor"));
-        if (rf < 0)
-        {
-            throw new ConfigurationException("Replication factor for 
SimpleStrategy must be non-negative, "+rf+" given.");
-        }
+        validateReplicationFactor(configOptions.get("replication_factor"));
     }
 }


Reply via email to