src/main/java/org/ehcache/sizeof/util/WeakIdentityConcurrentMap.java
public V put(K key, V value) {
        cleanUp();
        return map.put(new IdentityWeakReference<>(key, queue), value);
    }
public V put(K key, V value) {
        cleanUp();
        return map.put(new IdentityWeakReference<>(key, queue), value);
    }
Puts into the underlying

@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>.
(A <tt>null</tt> return can also indicate that the map
previously associated <tt>null</tt> with <tt>key</tt>,
if the implementation supports <tt>null</tt> values.)