Author: jbellis
Date: Thu Jan 20 02:34:07 2011
New Revision: 1061104
URL: http://svn.apache.org/viewvc?rev=1061104&view=rev
Log:
fix messages/endpoints mismatch when RR is disabled
patch by jbellis; reviewed by tjake for CASSANDRA-2010
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java?rev=1061104&r1=1061103&r2=1061104&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
(original)
+++
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
Thu Jan 20 02:34:07 2011
@@ -354,18 +354,17 @@ public class StorageProxy implements Sto
ReadCallback<Row> handler = getReadCallback(resolver,
command.table, consistency_level);
handler.assureSufficientLiveNodes(endpoints);
- int targets;
+ // if we're not going to read repair, cut the endpoints list down
to the ones required to satisfy ConsistencyLevel
if (randomlyReadRepair(command))
{
- targets = endpoints.size();
- if (targets > handler.blockfor)
+ if (endpoints.size() > handler.blockfor)
repairs.add(command);
}
else
{
- targets = handler.blockfor;
+ endpoints = endpoints.subList(0, handler.blockfor);
}
- Message[] messages = new Message[targets];
+ Message[] messages = new Message[endpoints.size()];
// data-request message is sent to dataPoint, the node that will
actually get
// the data for us. The other replicas are only sent a digest
query.