See:
http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-June/018251.html
and related bug report.
David
On 21/07/2014 6:01 AM, Paul Sandoz wrote:
Begin forwarded message:
-------- Пересылаемое сообщение--------
17.07.2014, 19:20, "Roman Leventov" <leven...@ya.ru>:
Map.compute() Javadoc has the following paragraph:
--------
The default implementation is equivalent to performing the following steps for
this map, then returning the current value or null if absent:
V oldValue = map.get(key);
V newValue = remappingFunction.apply(key, oldValue);
if (oldValue != null ) {
if (newValue != null)
map.put(key, newValue);
else
map.remove(key);
} else {
if (newValue != null)
map.put(key, newValue);
else
return null;
}
--------
But this code don't correspond neither verbal description of the behaviour nor
the actual default implementation in java.util.Map. If the oldValue is null and
newValue is null, map should still remove the key, not to just `return null;`