diff --git a/CHANGES.txt b/CHANGES.txt index 14b43e563b..d1d10301d8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.9 + * Fix NPE in StreamTransferTask.createMessageForRetry() (CASSANDRA-7323) * Add conditional CREATE/DROP USER support (CASSANDRA-7264) * Swap local and global default read repair chances (CASSANDRA-7320) * Add missing iso8601 patterns for date strings (CASSANDRA-6973) diff --git a/src/java/org/apache/cassandra/streaming/StreamTransferTask.java b/src/java/org/apache/cassandra/streaming/StreamTransferTask.java index 7d0cc87e81..a543d01e8d 100644 --- a/src/java/org/apache/cassandra/streaming/StreamTransferTask.java +++ b/src/java/org/apache/cassandra/streaming/StreamTransferTask.java @@ -99,11 +99,12 @@ public class StreamTransferTask extends StreamTask return new ArrayList<>(files.values()); } - public OutgoingFileMessage createMessageForRetry(int sequenceNumber) + public synchronized OutgoingFileMessage createMessageForRetry(int sequenceNumber) { // remove previous time out task to be rescheduled later ScheduledFuture future = timeoutTasks.get(sequenceNumber); - future.cancel(false); + if (future != null) + future.cancel(false); return files.get(sequenceNumber); }