On 4/10/2013 1:35 PM, Mike Duigou wrote:
Hello all;
This is a changeset which improves the consistency of several Map.merge
implementations for handling of null values.
It isn't at all clear to me what specification you are using to define
the expected behaviour here. I would have thought that anyone supplying
a remapping function needs to be aware of whether the target map
supports nulls or not, and that the remapping function should then do
the right thing if null is encountered. Instead you are making the
decision to bypass the remapping function if you encounter a null.
David
The existing unit tests hadn't considered several cases where the result of the
remapper was not the same as the value. I've restructured the merge tests to be
more thorough and systematic this revealed a couple of problems.
http://cr.openjdk.java.net/~mduigou/JDK-8024688/0/webrev/
Like several of the previous patches, this one introduces an alternative
default for ConcurrentMap to work around issues involving null values where the
handling in the general Map default would be incorrect.
Mike