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

marcuse pushed a commit to branch cassandra-4.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit aaf72a7decf6964f00adb871333571de66c166a3
Author: Marcus Eriksson <[email protected]>
AuthorDate: Fri Sep 17 17:45:35 2021 +0200

    Avoid race causing us to return null in RangesAtEndpoint
    
    Patch by marcuse; reviewed by Jon Meredith for CASSANDRA-16965
---
 CHANGES.txt                                                 | 1 +
 src/java/org/apache/cassandra/locator/RangesAtEndpoint.java | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index b2f3369..0c0ba4f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.0.2
+ * Avoid race causing us to return null in RangesAtEndpoint (CASSANDRA-16965)
  * Avoid rewriting all sstables during cleanup when transient replication is 
enabled (CASSANDRA-16966)
  * Prevent CQLSH from failure on Python 3.10 (CASSANDRA-16987)
  * Avoid trying to acquire 0 permits from the rate limiter when taking 
snapshot (CASSANDRA-16872)
diff --git a/src/java/org/apache/cassandra/locator/RangesAtEndpoint.java 
b/src/java/org/apache/cassandra/locator/RangesAtEndpoint.java
index de7daa1..6401d2a 100644
--- a/src/java/org/apache/cassandra/locator/RangesAtEndpoint.java
+++ b/src/java/org/apache/cassandra/locator/RangesAtEndpoint.java
@@ -131,7 +131,7 @@ public class RangesAtEndpoint extends 
AbstractReplicaCollection<RangesAtEndpoint
     public RangesAtEndpoint onlyFull()
     {
         RangesAtEndpoint result = onlyFull;
-        if (onlyFull == null)
+        if (result == null)
             onlyFull = result = filter(Replica::isFull);
         return result;
     }
@@ -139,7 +139,7 @@ public class RangesAtEndpoint extends 
AbstractReplicaCollection<RangesAtEndpoint
     public RangesAtEndpoint onlyTransient()
     {
         RangesAtEndpoint result = onlyTransient;
-        if (onlyTransient == null)
+        if (result == null)
             onlyTransient = result = filter(Replica::isTransient);
         return result;
     }

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

Reply via email to