Author: jbellis
Date: Fri Oct 22 21:18:15 2010
New Revision: 1026497

URL: http://svn.apache.org/viewvc?rev=1026497&view=rev
Log:
move strategy creation into Table instantiation so it can't be out of sync
patch by jbellis; tested by Paul Cannon for CASSANDRA-1649

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
    cassandra/trunk/src/java/org/apache/cassandra/db/Table.java
    cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java
    
cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterQuorumResponseHandler.java
    
cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java
    
cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java
    cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
    cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
    
cassandra/trunk/test/unit/org/apache/cassandra/locator/ReplicationStrategyEndpointCacheTest.java
    
cassandra/trunk/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java
    
cassandra/trunk/test/unit/org/apache/cassandra/service/AntiEntropyServiceTest.java

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=1026497&r1=1026496&r2=1026497&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
(original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
Fri Oct 22 21:18:15 2010
@@ -963,13 +963,11 @@ public class    DatabaseDescriptor
     {
         tables.put(ksm.name, ksm);
         DatabaseDescriptor.defsVersion = newVersion;
-        StorageService.instance.initReplicationStrategy(ksm.name);
     }
     
     public static void clearTableDefinition(KSMetaData ksm, UUID newVersion)
     {
         tables.remove(ksm.name);
-        StorageService.instance.clearReplicationStrategy(ksm.name);
         DatabaseDescriptor.defsVersion = newVersion;
     }
     

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/Table.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java?rev=1026497&r1=1026496&r2=1026497&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/Table.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/Table.java Fri Oct 22 
21:18:15 2010
@@ -37,7 +37,9 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 import org.apache.cassandra.config.CFMetaData;
+import org.apache.cassandra.config.ConfigurationException;
 import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.config.KSMetaData;
 import org.apache.cassandra.db.commitlog.CommitLog;
 import org.apache.cassandra.db.filter.QueryFilter;
 import org.apache.cassandra.db.filter.QueryPath;
@@ -47,6 +49,7 @@ import org.apache.cassandra.io.sstable.R
 import org.apache.cassandra.io.sstable.SSTableDeletingReference;
 import org.apache.cassandra.io.sstable.SSTableReader;
 import org.apache.cassandra.io.util.FileUtils;
+import org.apache.cassandra.locator.AbstractReplicationStrategy;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.FBUtilities;
 import org.cliffc.high_scale_lib.NonBlockingHashMap;
@@ -92,6 +95,7 @@ public class Table
     public final Map<Integer, ColumnFamilyStore> columnFamilyStores = new 
HashMap<Integer, ColumnFamilyStore>(); // TODO make private again
     private final Object[] indexLocks;
     private ScheduledFuture<?> flushTask;
+    public final AbstractReplicationStrategy replicationStrategy;
 
     public static Table open(String table)
     {
@@ -231,6 +235,20 @@ public class Table
     private Table(String table)
     {
         name = table;
+        KSMetaData ksm = DatabaseDescriptor.getKSMetaData(table);
+        try
+        {
+            replicationStrategy = 
AbstractReplicationStrategy.createReplicationStrategy(table,
+                                                                               
         ksm.strategyClass,
+                                                                               
         StorageService.instance.getTokenMetadata(),
+                                                                               
         DatabaseDescriptor.getEndpointSnitch(),
+                                                                               
         ksm.strategyOptions);
+        }
+        catch (ConfigurationException e)
+        {
+            throw new RuntimeException(e);
+        }
+
         indexLocks = new Object[DatabaseDescriptor.getConcurrentWriters() * 8];
         for (int i = 0; i < indexLocks.length; i++)
             indexLocks[i] = new Object();

Modified: cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java?rev=1026497&r1=1026496&r2=1026497&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/dht/BootStrapper.java Fri Oct 
22 21:18:15 2010
@@ -34,6 +34,7 @@ package org.apache.cassandra.dht;
  import org.slf4j.LoggerFactory;
 
  import org.apache.cassandra.config.DatabaseDescriptor;
+ import org.apache.cassandra.db.Table;
  import org.apache.cassandra.gms.FailureDetector;
  import org.apache.cassandra.gms.IFailureDetector;
  import org.apache.cassandra.locator.AbstractReplicationStrategy;
@@ -190,7 +191,7 @@ public class BootStrapper
     Multimap<Range, InetAddress> getRangesWithSources(String table)
     {
         assert tokenMetadata.sortedTokens().size() > 0;
-        final AbstractReplicationStrategy strat = 
StorageService.instance.getReplicationStrategy(table);
+        final AbstractReplicationStrategy strat = 
Table.open(table).replicationStrategy;
         Collection<Range> myRanges = 
strat.getPendingAddressRanges(tokenMetadata, token, address);
 
         Multimap<Range, InetAddress> myRangeAddresses = 
ArrayListMultimap.create();

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterQuorumResponseHandler.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterQuorumResponseHandler.java?rev=1026497&r1=1026496&r2=1026497&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterQuorumResponseHandler.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterQuorumResponseHandler.java
 Fri Oct 22 21:18:15 2010
@@ -24,7 +24,7 @@ package org.apache.cassandra.service;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.locator.AbstractNetworkTopologySnitch;
+import org.apache.cassandra.db.Table;
 import org.apache.cassandra.locator.IEndpointSnitch;
 import org.apache.cassandra.locator.NetworkTopologyStrategy;
 import org.apache.cassandra.net.Message;
@@ -65,7 +65,7 @@ public class DatacenterQuorumResponseHan
     @Override
     public int determineBlockFor(ConsistencyLevel consistency_level, String 
table)
        {
-               NetworkTopologyStrategy stategy = (NetworkTopologyStrategy) 
StorageService.instance.getReplicationStrategy(table);
+        NetworkTopologyStrategy stategy = (NetworkTopologyStrategy) 
Table.open(table).replicationStrategy;
                return (stategy.getReplicationFactor(localdc) / 2) + 1;
        }
 }

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java?rev=1026497&r1=1026496&r2=1026497&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java
 Fri Oct 22 21:18:15 2010
@@ -31,7 +31,7 @@ import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.locator.AbstractNetworkTopologySnitch;
+import org.apache.cassandra.db.Table;
 import org.apache.cassandra.locator.IEndpointSnitch;
 import org.apache.cassandra.locator.NetworkTopologyStrategy;
 import org.apache.cassandra.net.Message;
@@ -63,7 +63,7 @@ public class DatacenterSyncWriteResponse
         super(writeEndpoints, hintedEndpoints, consistencyLevel);
         assert consistencyLevel == ConsistencyLevel.DCQUORUM;
 
-        strategy = (NetworkTopologyStrategy) 
StorageService.instance.getReplicationStrategy(table);
+        strategy = (NetworkTopologyStrategy) 
Table.open(table).replicationStrategy;
 
         for (String dc : strategy.getDatacenters())
         {

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java?rev=1026497&r1=1026496&r2=1026497&view=diff
==============================================================================
--- 
cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java
 (original)
+++ 
cassandra/trunk/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java
 Fri Oct 22 21:18:15 2010
@@ -28,7 +28,7 @@ import java.net.InetAddress;
 import java.util.Collection;
 
 import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.locator.AbstractNetworkTopologySnitch;
+import org.apache.cassandra.db.Table;
 import org.apache.cassandra.locator.IEndpointSnitch;
 import org.apache.cassandra.locator.NetworkTopologyStrategy;
 import org.apache.cassandra.net.Message;
@@ -65,7 +65,7 @@ public class DatacenterWriteResponseHand
     @Override
     protected int determineBlockFor(String table)
     {
-        NetworkTopologyStrategy strategy = (NetworkTopologyStrategy) 
StorageService.instance.getReplicationStrategy(table);
+        NetworkTopologyStrategy strategy = (NetworkTopologyStrategy) 
Table.open(table).replicationStrategy;
         return (strategy.getReplicationFactor(localdc) / 2) + 1;
     }
 

Modified: 
cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java?rev=1026497&r1=1026496&r2=1026497&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java Fri 
Oct 22 21:18:15 2010
@@ -27,7 +27,6 @@ import java.util.concurrent.*;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
-import com.google.common.collect.AbstractIterator;
 import com.google.common.collect.Multimap;
 import static com.google.common.base.Charsets.UTF_8;
 import org.apache.commons.lang.ArrayUtils;
@@ -104,7 +103,7 @@ public class StorageProxy implements Sto
             {
                 mostRecentRowMutation = rm;
                 String table = rm.getTable();
-                AbstractReplicationStrategy rs = 
ss.getReplicationStrategy(table);
+                AbstractReplicationStrategy rs = 
Table.open(table).replicationStrategy;
 
                 List<InetAddress> naturalEndpoints = 
ss.getNaturalEndpoints(table, rm.key());
                 Collection<InetAddress> writeEndpoints = 
ss.getTokenMetadata().getWriteEndpoints(StorageService.getPartitioner().getToken(rm.key()),
 table, naturalEndpoints);
@@ -342,7 +341,7 @@ public class StorageProxy implements Sto
                 if (logger.isDebugEnabled())
                     logger.debug("strongread reading " + (m == message ? 
"data" : "digest") + " for " + command + " from " + m.getMessageId() + "@" + 
endpoint);
             }
-            AbstractReplicationStrategy rs = 
StorageService.instance.getReplicationStrategy(command.table);
+            AbstractReplicationStrategy rs = 
Table.open(command.table).replicationStrategy;
             QuorumResponseHandler<Row> quorumResponseHandler = 
rs.getQuorumResponseHandler(new ReadResponseResolver(command.table), 
consistency_level);
             MessagingService.instance.sendRR(messages, endpoints, 
quorumResponseHandler);
             quorumResponseHandlers.add(quorumResponseHandler);
@@ -368,7 +367,7 @@ public class StorageProxy implements Sto
             }
             catch (DigestMismatchException ex)
             {
-                AbstractReplicationStrategy rs = 
StorageService.instance.getReplicationStrategy(command.table);
+                AbstractReplicationStrategy rs = 
Table.open(command.table).replicationStrategy;
                 QuorumResponseHandler<Row> qrhRepair = 
rs.getQuorumResponseHandler(new ReadResponseResolver(command.table), 
ConsistencyLevel.QUORUM);
                 if (logger.isDebugEnabled())
                     logger.debug("Digest mismatch:", ex);
@@ -448,7 +447,7 @@ public class StorageProxy implements Sto
 
                 // collect replies and resolve according to consistency level
                 RangeSliceResponseResolver resolver = new 
RangeSliceResponseResolver(command.keyspace, liveEndpoints);
-                AbstractReplicationStrategy rs = 
StorageService.instance.getReplicationStrategy(command.keyspace);
+                AbstractReplicationStrategy rs = 
Table.open(command.keyspace).replicationStrategy;
                 QuorumResponseHandler<List<Row>> handler = 
rs.getQuorumResponseHandler(resolver, consistency_level);
                 // TODO bail early if live endpoints can't satisfy requested 
consistency level
                 for (InetAddress endpoint : liveEndpoints) 
@@ -661,7 +660,7 @@ public class StorageProxy implements Sto
 
             // collect replies and resolve according to consistency level
             RangeSliceResponseResolver resolver = new 
RangeSliceResponseResolver(keyspace, liveEndpoints);
-            AbstractReplicationStrategy rs = 
StorageService.instance.getReplicationStrategy(keyspace);
+            AbstractReplicationStrategy rs = 
Table.open(keyspace).replicationStrategy;
             QuorumResponseHandler<List<Row>> handler = 
rs.getQuorumResponseHandler(resolver, consistency_level);
             // TODO bail early if live endpoints can't satisfy requested 
consistency level
             IndexScanCommand command = new IndexScanCommand(keyspace, 
column_family, index_clause, column_predicate, range);

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=1026497&r1=1026496&r2=1026497&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java 
Fri Oct 22 21:18:15 2010
@@ -227,9 +227,6 @@ public class StorageService implements I
                                                                                
    new NamedThreadFactory("ReadRepair"),
                                                                                
    "request");
 
-    /* We use this interface to determine where replicas need to be placed */
-    private final Map<String, AbstractReplicationStrategy> 
replicationStrategies;
-
     private Set<InetAddress> replicatingNodes;
     private InetAddress removingNode;
 
@@ -300,54 +297,11 @@ public class StorageService implements I
         MessagingService.instance.registerVerbHandlers(Verb.TRUNCATE, new 
TruncateVerbHandler());
         MessagingService.instance.registerVerbHandlers(Verb.SCHEMA_CHECK, new 
SchemaCheckVerbHandler());
 
-        replicationStrategies = new HashMap<String, 
AbstractReplicationStrategy>();
-        for (String table : DatabaseDescriptor.getTables())
-            initReplicationStrategy(table);
-
         // spin up the streaming serivice so it is available for jmx tools.
         if (StreamingService.instance == null)
             throw new RuntimeException("Streaming service is unavailable.");
     }
 
-    public AbstractReplicationStrategy getReplicationStrategy(String table)
-    {
-        AbstractReplicationStrategy ars = replicationStrategies.get(table);
-        assert ars != null: String.format("No replica strategy configured for 
%s", table);
-        return ars;
-    }
-    
-    public void initReplicationStrategy(String table)
-    {
-        AbstractReplicationStrategy strat = 
createReplicationStrategy(tokenMetadata_, table);
-        replicationStrategies.put(table, strat);
-    }
-    
-    public void clearReplicationStrategy(String table)
-    {
-        replicationStrategies.remove(table);
-    }
-
-    public static AbstractReplicationStrategy 
createReplicationStrategy(TokenMetadata tokenMetadata, String table)
-    {
-        AbstractReplicationStrategy replicationStrategy;
-        KSMetaData ksm = DatabaseDescriptor.getKSMetaData(table);
-        try
-        {
-            replicationStrategy = 
AbstractReplicationStrategy.createReplicationStrategy(
-                    table,
-                    ksm.strategyClass,
-                    tokenMetadata,
-                    DatabaseDescriptor.getEndpointSnitch(),
-                    ksm.strategyOptions
-            );
-        }
-        catch (Exception e)
-        {
-            throw new RuntimeException(e);
-        }
-        return replicationStrategy;
-    }
-
     public void stopClient()
     {
         Gossiper.instance.unregister(migrationManager);
@@ -606,7 +560,7 @@ public class StorageService implements I
         Map<Range, List<InetAddress>> rangeToEndpointMap = new HashMap<Range, 
List<InetAddress>>();
         for (Range range : ranges)
         {
-            rangeToEndpointMap.put(range, 
getReplicationStrategy(keyspace).getNaturalEndpoints(range.right));
+            rangeToEndpointMap.put(range, 
Table.open(keyspace).replicationStrategy.getNaturalEndpoints(range.right));
         }
         return rangeToEndpointMap;
     }
@@ -868,7 +822,7 @@ public class StorageService implements I
     private void calculatePendingRanges()
     {
         for (String table : DatabaseDescriptor.getNonSystemTables())
-            calculatePendingRanges(getReplicationStrategy(table), table);
+            calculatePendingRanges(Table.open(table).replicationStrategy, 
table);
     }
 
     // public & static for testing purposes
@@ -938,7 +892,7 @@ public class StorageService implements I
     private Multimap<InetAddress, Range> getNewSourceRanges(String table, 
Set<Range> ranges) 
     {
         InetAddress myAddress = FBUtilities.getLocalAddress();
-        Multimap<Range, InetAddress> rangeAddresses = 
getReplicationStrategy(table).getRangeAddresses(tokenMetadata_);
+        Multimap<Range, InetAddress> rangeAddresses = 
Table.open(table).replicationStrategy.getRangeAddresses(tokenMetadata_);
         Multimap<InetAddress, Range> sourceRanges = HashMultimap.create();
         IFailureDetector failureDetector = FailureDetector.instance;
 
@@ -1061,7 +1015,7 @@ public class StorageService implements I
 
         // Find (for each range) all nodes that store replicas for these 
ranges as well
         for (Range range : ranges)
-            currentReplicaEndpoints.put(range, 
getReplicationStrategy(table).calculateNaturalEndpoints(range.right, 
tokenMetadata_));
+            currentReplicaEndpoints.put(range, 
Table.open(table).replicationStrategy.calculateNaturalEndpoints(range.right, 
tokenMetadata_));
 
         TokenMetadata temp = tokenMetadata_.cloneAfterAllLeft();
 
@@ -1079,7 +1033,7 @@ public class StorageService implements I
         // range.
         for (Range range : ranges)
         {
-            Collection<InetAddress> newReplicaEndpoints = 
getReplicationStrategy(table).calculateNaturalEndpoints(range.right, temp);
+            Collection<InetAddress> newReplicaEndpoints = 
Table.open(table).replicationStrategy.calculateNaturalEndpoints(range.right, 
temp);
             newReplicaEndpoints.removeAll(currentReplicaEndpoints.get(range));
             if (logger_.isDebugEnabled())
                 if (newReplicaEndpoints.isEmpty())
@@ -1403,7 +1357,7 @@ public class StorageService implements I
      */
     Collection<Range> getRangesForEndpoint(String table, InetAddress ep)
     {
-        return getReplicationStrategy(table).getAddressRanges().get(ep);
+        return 
Table.open(table).replicationStrategy.getAddressRanges().get(ep);
     }
 
     /**
@@ -1453,7 +1407,7 @@ public class StorageService implements I
      */
     public List<InetAddress> getNaturalEndpoints(String table, Token token)
     {
-        return getReplicationStrategy(table).getNaturalEndpoints(token);
+        return 
Table.open(table).replicationStrategy.getNaturalEndpoints(token);
     }
 
     /**
@@ -1471,7 +1425,7 @@ public class StorageService implements I
     public List<InetAddress> getLiveNaturalEndpoints(String table, Token token)
     {
         List<InetAddress> liveEps = new ArrayList<InetAddress>();
-        List<InetAddress> endpoints = 
getReplicationStrategy(table).getNaturalEndpoints(token);
+        List<InetAddress> endpoints = 
Table.open(table).replicationStrategy.getNaturalEndpoints(token);
 
         for (InetAddress endpoint : endpoints)
         {

Modified: 
cassandra/trunk/test/unit/org/apache/cassandra/locator/ReplicationStrategyEndpointCacheTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/locator/ReplicationStrategyEndpointCacheTest.java?rev=1026497&r1=1026496&r2=1026497&view=diff
==============================================================================
--- 
cassandra/trunk/test/unit/org/apache/cassandra/locator/ReplicationStrategyEndpointCacheTest.java
 (original)
+++ 
cassandra/trunk/test/unit/org/apache/cassandra/locator/ReplicationStrategyEndpointCacheTest.java
 Fri Oct 22 21:18:15 2010
@@ -22,7 +22,8 @@ package org.apache.cassandra.locator;
 import java.net.InetAddress;
 import java.util.*;
 
-import org.apache.cassandra.service.StorageService;
+import org.apache.cassandra.db.Table;
+
 import org.apache.commons.lang.StringUtils;
 import org.junit.Test;
 
@@ -42,7 +43,7 @@ public class ReplicationStrategyEndpoint
         tmd = new TokenMetadata();
         searchToken = new BigIntegerToken(String.valueOf(15));
 
-        strategy = 
getStrategyWithNewTokenMetadata(StorageService.instance.getReplicationStrategy("Keyspace3"),
 tmd);
+        strategy = 
getStrategyWithNewTokenMetadata(Table.open("Keyspace3").replicationStrategy, 
tmd);
 
         tmd.updateNormalToken(new BigIntegerToken(String.valueOf(10)), 
InetAddress.getByName("127.0.0.1"));
         tmd.updateNormalToken(new BigIntegerToken(String.valueOf(20)), 
InetAddress.getByName("127.0.0.2"));

Modified: 
cassandra/trunk/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java?rev=1026497&r1=1026496&r2=1026497&view=diff
==============================================================================
--- 
cassandra/trunk/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java 
(original)
+++ 
cassandra/trunk/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java 
Fri Oct 22 21:18:15 2010
@@ -33,6 +33,7 @@ import org.junit.Test;
 import static org.junit.Assert.*;
 import org.apache.cassandra.SchemaLoader;
 import org.apache.cassandra.config.DatabaseDescriptor;
+import org.apache.cassandra.db.Table;
 import org.apache.cassandra.dht.*;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.service.StorageServiceAccessor;
@@ -42,13 +43,7 @@ public class SimpleStrategyTest extends 
     @Test
     public void tryValidTable()
     {
-        assert StorageService.instance.getReplicationStrategy("Keyspace1") != 
null;
-    }
-
-    @Test(expected = AssertionError.class)
-    public void tryBogusTable()
-    {
-        
StorageService.instance.getReplicationStrategy("SomeBogusTableThatDoesntExist");
+        assert Table.open("Keyspace1").replicationStrategy != null;
     }
 
     @Test

Modified: 
cassandra/trunk/test/unit/org/apache/cassandra/service/AntiEntropyServiceTest.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/service/AntiEntropyServiceTest.java?rev=1026497&r1=1026496&r2=1026497&view=diff
==============================================================================
--- 
cassandra/trunk/test/unit/org/apache/cassandra/service/AntiEntropyServiceTest.java
 (original)
+++ 
cassandra/trunk/test/unit/org/apache/cassandra/service/AntiEntropyServiceTest.java
 Fri Oct 22 21:18:15 2010
@@ -184,7 +184,7 @@ public class AntiEntropyServiceTest exte
 
         // generate rf*2 nodes, and ensure that only neighbors specified by 
the ARS are returned
         addTokens(2 * DatabaseDescriptor.getReplicationFactor(tablename));
-        AbstractReplicationStrategy ars = 
StorageService.instance.getReplicationStrategy(tablename);
+        AbstractReplicationStrategy ars = 
Table.open(tablename).replicationStrategy;
         Set<InetAddress> expected = new HashSet<InetAddress>();
         for (Range replicaRange : 
ars.getAddressRanges().get(FBUtilities.getLocalAddress()))
         {


Reply via email to