Useless null check in HashMap.merge()

Zheka Kozlov orionllmain at gmail.com
Wed Jul 4 09:42:05 UTC 2018


I noticed dead code in java.util.HashMap.merge():

public V merge(K key, V value,
                   BiFunction<? super V, ? super V, ? extends V>
remappingFunction) {
    if (value == null)
        throw new NullPointerException();

    ...

    if (value != null) { *// Condition ' value != null' is always true*
        if (t != null)
            t.putTreeVal(this, tab, hash, key, value);
        else {
            tab[i] = newNode(hash, key, value, first);
            if (binCount >= TREEIFY_THRESHOLD - 1)
                treeifyBin(tab, hash);
        }
        ++modCount;
        ++size;
        afterNodeInsertion(true);
    }
    return value;
}

The code in the if branch will never be executed because `value` was
previously checked at the beginning of the method.

Is this a mistake?


More information about the core-libs-dev mailing list