From 36779a0df3e2c7942dda40d502d8bd3848e1364e Mon Sep 17 00:00:00 2001 From: Paul Sandoz Date: Mon, 5 Dec 2016 13:00:32 -0800 Subject: [PATCH] 8170733: HashMap.HashIterator.remove method does not use cached value for the hash code Reviewed-by: martin, dl, shade --- jdk/src/java.base/share/classes/java/util/HashMap.java | 3 +-- jdk/src/java.base/share/classes/java/util/LinkedHashMap.java | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/jdk/src/java.base/share/classes/java/util/HashMap.java b/jdk/src/java.base/share/classes/java/util/HashMap.java index fd4d9b11c2d..5cc36296aa8 100644 --- a/jdk/src/java.base/share/classes/java/util/HashMap.java +++ b/jdk/src/java.base/share/classes/java/util/HashMap.java @@ -1502,8 +1502,7 @@ public class HashMap extends AbstractMap if (modCount != expectedModCount) throw new ConcurrentModificationException(); current = null; - K key = p.key; - removeNode(hash(key), key, null, false, false); + removeNode(p.hash, p.key, null, false, false); expectedModCount = modCount; } } diff --git a/jdk/src/java.base/share/classes/java/util/LinkedHashMap.java b/jdk/src/java.base/share/classes/java/util/LinkedHashMap.java index 0253cd51bfd..bd21f5bf6d4 100644 --- a/jdk/src/java.base/share/classes/java/util/LinkedHashMap.java +++ b/jdk/src/java.base/share/classes/java/util/LinkedHashMap.java @@ -731,8 +731,7 @@ public class LinkedHashMap if (modCount != expectedModCount) throw new ConcurrentModificationException(); current = null; - K key = p.key; - removeNode(hash(key), key, null, false, false); + removeNode(p.hash, p.key, null, false, false); expectedModCount = modCount; } }