This is an automated email from the ASF dual-hosted git repository.

dcapwell pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/trunk by this push:
     new c7d2e97da0 NPE bug in streaming checking if SSTable is being repaired
c7d2e97da0 is described below

commit c7d2e97da04e09dd908b1ea238a8498cfe5a3edb
Author: David Capwell <[email protected]>
AuthorDate: Mon Aug 8 10:37:30 2022 -0700

    NPE bug in streaming checking if SSTable is being repaired
    
    patch by David Capwell; reviewed by Marcus Eriksson for CASSANDRA-17801
---
 CHANGES.txt                                                         | 1 +
 .../org/apache/cassandra/db/streaming/CassandraStreamManager.java   | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 64ee3e800d..e33cd45a78 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.2
+ * NPE bug in streaming checking if SSTable is being repaired (CASSANDRA-17801)
  * Users of NativeLibrary should handle lack of JNA appropriately when running 
in client mode (CASSANDRA-17794)
  * Warn on unknown directories found in system keyspace directory rather than 
kill node during startup checks (CASSANDRA-17777)
  * Log duplicate rows sharing a partition key found in verify and scrub 
(CASSANDRA-17789)
diff --git 
a/src/java/org/apache/cassandra/db/streaming/CassandraStreamManager.java 
b/src/java/org/apache/cassandra/db/streaming/CassandraStreamManager.java
index 46cf253d4d..8ca7ac5dac 100644
--- a/src/java/org/apache/cassandra/db/streaming/CassandraStreamManager.java
+++ b/src/java/org/apache/cassandra/db/streaming/CassandraStreamManager.java
@@ -30,6 +30,7 @@ import org.apache.cassandra.db.lifecycle.View;
 import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.io.sstable.format.SSTableReader;
+import org.apache.cassandra.io.sstable.metadata.StatsMetadata;
 import org.apache.cassandra.locator.RangesAtEndpoint;
 import org.apache.cassandra.locator.Replica;
 import org.apache.cassandra.service.ActiveRepairService;
@@ -105,7 +106,10 @@ public class CassandraStreamManager implements 
TableStreamManager
                 }
                 else
                 {
-                    predicate = s -> s.isPendingRepair() && 
s.getSSTableMetadata().pendingRepair.equals(pendingRepair);
+                    predicate = s -> {
+                        StatsMetadata sstableMetadata = s.getSSTableMetadata();
+                        return sstableMetadata.pendingRepair != 
ActiveRepairService.NO_PENDING_REPAIR && 
sstableMetadata.pendingRepair.equals(pendingRepair);
+                    };
                 }
 
                 for (Range<PartitionPosition> keyRange : keyRanges)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to