Fix IndentityHashMap's handling of unboxed keys ...more specifically double and boolean. PiperOrigin-RevId: 339814745 Change-Id: I6c4222c53adef0a57417d01e047a0372f4ba53ba
diff --git a/user/super/com/google/gwt/emul/java/util/IdentityHashMap.java b/user/super/com/google/gwt/emul/java/util/IdentityHashMap.java index 1f424a0..0f386b9 100644 --- a/user/super/com/google/gwt/emul/java/util/IdentityHashMap.java +++ b/user/super/com/google/gwt/emul/java/util/IdentityHashMap.java
@@ -17,8 +17,6 @@ import java.io.Serializable; -import javaemul.internal.HashCodes; - /** * Map using reference equality on keys. <a * href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/IdentityHashMap.html">[Sun @@ -102,6 +100,6 @@ @Override int getHashCode(Object key) { - return HashCodes.getObjectIdentityHashCode(key); + return System.identityHashCode(key); } }
diff --git a/user/test/com/google/gwt/emultest/java/util/IdentityHashMapTest.java b/user/test/com/google/gwt/emultest/java/util/IdentityHashMapTest.java index 2d1f544..3cf9476 100644 --- a/user/test/com/google/gwt/emultest/java/util/IdentityHashMapTest.java +++ b/user/test/com/google/gwt/emultest/java/util/IdentityHashMapTest.java
@@ -16,9 +16,6 @@ package com.google.gwt.emultest.java.util; import com.google.gwt.testing.TestUtils; - -import org.apache.commons.collections.TestMap; - import java.util.Collection; import java.util.HashMap; import java.util.IdentityHashMap; @@ -27,6 +24,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import org.apache.commons.collections.TestMap; /** * Tests <code>IdentityHashMap</code>. @@ -736,6 +734,16 @@ assertEquals(VALUE_VAL, val); } + public void testUnboxedValues() { + IdentityHashMap map = new IdentityHashMap(); + map.put(true, null); + map.put(false, null); + map.put(true, null); + assertEquals(2, map.size()); + assertTrue(map.containsKey(true)); + assertTrue(map.containsKey(false)); + } + @Override protected Map makeConfirmedMap() { return new IdentityHashMap();