--- old/src/share/classes/java/util/Map.java 2013-10-03 20:30:26.863126340 -0700 +++ new/src/share/classes/java/util/Map.java 2013-10-03 20:30:26.707126333 -0700 @@ -577,6 +577,7 @@ * @throws NullPointerException if the specified key is null and this map * does not permit null keys * (optional) + * @since 1.8 */ default V getOrDefault(Object key, V defaultValue) { V v; @@ -1198,6 +1199,9 @@ oldValue = get(key); } else { if (value == null) { + if((oldValue = remove(key)) != null) { + throw new ConcurrentModificationException("non-null value"); + } return null; }