@Override
  public synchronized V replace(K key, V value) {
    if (map.containsKey(key)) {
      return put(key, value);
    } else {
      return null;
    }
  }
A copy on write hash map.

Note that the entryKey and keySet of this map are unmodifable. Should be easy to make them
modifiable at a future time.
geode-core/src/main/java/org/apache/geode/internal/util/concurrent/CopyOnWriteHashMap.java