From ef65d58213e1a32401935fc40e286e04bbca8def Mon Sep 17 00:00:00 2001 From: Yuki Morishita Date: Tue, 30 Sep 2014 11:36:37 -0500 Subject: [PATCH] Fix error in sstableloader with -cph > 1 patch by yukim; reviewed by Josh McKenzie for CASSANDRA-8007 --- CHANGES.txt | 1 + .../org/apache/cassandra/streaming/StreamCoordinator.java | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index dcfc6c5f1f..9881a94189 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -48,6 +48,7 @@ * Configurable client timeout for cqlsh (CASSANDRA-7516) * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111) * Make repair -pr work with -local (CASSANDRA-7450) + * Fix error in sstableloader with -cph > 1 (CASSANDRA-8007) Merged from 2.0: * CrcCheckChance should adjust based on live CFMetadata not sstable metadata (CASSANDRA-7978) diff --git a/src/java/org/apache/cassandra/streaming/StreamCoordinator.java b/src/java/org/apache/cassandra/streaming/StreamCoordinator.java index c8c0f148bd..48192b4dd2 100644 --- a/src/java/org/apache/cassandra/streaming/StreamCoordinator.java +++ b/src/java/org/apache/cassandra/streaming/StreamCoordinator.java @@ -157,8 +157,11 @@ public class StreamCoordinator List> result = new ArrayList<>(); List slice = null; - for (StreamSession.SSTableStreamingSections streamSession : sstableDetails) + Iterator iter = sstableDetails.iterator(); + while (iter.hasNext()) { + StreamSession.SSTableStreamingSections streamSession = iter.next(); + if (index % step == 0) { slice = new ArrayList<>(); @@ -166,6 +169,7 @@ public class StreamCoordinator } slice.add(streamSession); ++index; + iter.remove(); } return result;