diff -r 65544417508e -r b183cfd1ce17 jdk/src/java.base/share/classes/java/util/IdentityHashMap.java --- a/jdk/src/java.base/share/classes/java/util/IdentityHashMap.java Thu Dec 17 20:42:01 2015 +0300 +++ b/jdk/src/java.base/share/classes/java/util/IdentityHashMap.java Thu Dec 17 21:14:58 2015 +0300 @@ -964,10 +964,11 @@ */ public Set keySet() { Set ks = keySet; - if (ks != null) - return ks; - else - return keySet = new KeySet(); + if (ks == null) { + ks = new KeySet(); + keySet = ks; + } + return ks; } private class KeySet extends AbstractSet { @@ -1069,10 +1070,11 @@ */ public Collection values() { Collection vs = values; - if (vs != null) - return vs; - else - return values = new Values(); + if (vs == null) { + vs = new Values(); + values = vs; + } + return vs; } private class Values extends AbstractCollection {