--- old/src/share/classes/java/util/WeakHashMap.java 2012-06-03 22:53:16.000000000 -0700 +++ new/src/share/classes/java/util/WeakHashMap.java 2012-06-03 22:53:16.000000000 -0700 @@ -294,13 +294,11 @@ * otherwise encounter collisions for hashCodes that do not differ * in lower bits. */ - int hash(Object k) { - int h = hashSeed; + final int hash(Object k) { if (k instanceof String) { return ((String) k).hash32(); - } else { - h ^= k.hashCode(); } + int h = hashSeed ^ k.hashCode(); // This function ensures that hashCodes that differ only by // constant multiples at each bit position have a bounded