@Override
  public V put(final K key, final V value) {
    if (value == null) {
      throw new NullPointerException();
    }
    // throws NullPointerException if key null
    final int hash = entryCreator.keyHashCode(key, compareValues);
    return segmentFor(hash).put(key, hash, value, false);
  }
Maps the specified key to the specified value in this table. Neither the key nor the value can
be null.

<p>
The value can be retrieved by calling the <tt>get</tt> method with a key that is equal to the
original key.

@param key key with which the specified value is to be associated
@param value value to be associated with the specified key
@return the previous value associated with <tt>key</tt>, or <tt>null</tt> if there was no
        mapping for <tt>key</tt>
@throws NullPointerException if the specified key or value is null
geode-core/src/main/java/org/apache/geode/internal/util/concurrent/CustomEntryConcurrentHashMap.java