From 8f86c85c0cbf0a05d2df31fafdc925a22173858a Mon Sep 17 00:00:00 2001 From: cdw200806 <56459974+cdw200806@users.noreply.github.com> Date: Sun, 13 Apr 2025 18:29:48 +0800 Subject: [PATCH] Update ConcurrentHashMap.java "In Red-Black Trees, a red node cannot have any red children; this rule is violated even if only one child is red, not just when both children are red." --- .../share/classes/java/util/concurrent/ConcurrentHashMap.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java b/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java index 8734980cf808a..cecbed1fa6f26 100644 --- a/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java +++ b/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java @@ -3299,7 +3299,7 @@ static boolean checkInvariants(TreeNode t) { return false; if (tr != null && (tr.parent != t || tr.hash < t.hash)) return false; - if (t.red && tl != null && tl.red && tr != null && tr.red) + if (t.red && (tl != null && tl.red || tr != null && tr.red)) return false; if (tl != null && !checkInvariants(tl)) return false;