mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-14 18:03:44 +00:00
6691215: (coll) IdentityHashMap.containsValue(null) returns true when null value not present
Reviewed-by: dl, chegar, alanb
This commit is contained in:
parent
53684b6479
commit
e7b25f91b2
@ -188,7 +188,6 @@ public class IdentityHashMap<K,V>
|
||||
/**
|
||||
* Use NULL_KEY for key if it is null.
|
||||
*/
|
||||
|
||||
private static Object maskNull(Object key) {
|
||||
return (key == null ? NULL_KEY : key);
|
||||
}
|
||||
@ -378,8 +377,8 @@ public class IdentityHashMap<K,V>
|
||||
*/
|
||||
public boolean containsValue(Object value) {
|
||||
Object[] tab = table;
|
||||
for (int i = 1; i < tab.length; i+= 2)
|
||||
if (tab[i] == value)
|
||||
for (int i = 1; i < tab.length; i += 2)
|
||||
if (tab[i] == value && tab[i - 1] != null)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
@ -905,7 +904,6 @@ public class IdentityHashMap<K,V>
|
||||
* view the first time this view is requested. The view is stateless,
|
||||
* so there's no reason to create more than one.
|
||||
*/
|
||||
|
||||
private transient Set<Map.Entry<K,V>> entrySet = null;
|
||||
|
||||
/**
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
* @test
|
||||
* @bug 6207984 6272521 6192552 6269713 6197726 6260652 5073546 4137464
|
||||
* 4155650 4216399 4294891 6282555 6318622 6355327 6383475 6420753
|
||||
* 6431845 4802633 6570566 6570575 6570631 6570924 6691185
|
||||
* 6431845 4802633 6570566 6570575 6570631 6570924 6691185 6691215
|
||||
* @summary Run many tests on many Collection and Map implementations
|
||||
* @author Martin Buchholz
|
||||
*/
|
||||
@ -247,6 +247,13 @@ public class MOAT {
|
||||
testEmptySet(m.keySet());
|
||||
testEmptySet(m.entrySet());
|
||||
testEmptyCollection(m.values());
|
||||
|
||||
try { check(! m.containsValue(null)); }
|
||||
catch (NullPointerException _) { /* OK */ }
|
||||
try { check(! m.containsKey(null)); }
|
||||
catch (NullPointerException _) { /* OK */ }
|
||||
check(! m.containsValue(1));
|
||||
check(! m.containsKey(1));
|
||||
}
|
||||
|
||||
private static void testImmutableMap(final Map<Integer,Integer> m) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user