mvvmfx/src/main/java/de/saxsys/mvvmfx/internal/WeakValueHashMap.java
@Override
	public Object put(Object key, Object value) {
		// If the map already contains an equivalent key, the new key
		// of a (key, value) pair is NOT stored in the map but the new
		// value only. But as the key is strongly referenced by the
		// map, it can not be removed from the garbage collector, even
		// if the key becomes weakly reachable due to the old
		// value. So, it isn't necessary to remove all garbage
		// collected values with their keys from the map before the
		// new entry is made. We only clean up here to distribute
		// clean up calls on different operations.
		processQueue();
		
		WeakValue oldValue = (WeakValue) super.put(key, WeakValue.create(key, value, queue));
		return getReferenceObject(oldValue);
	}
@Override
	public Object put(Object key, Object value) {
		// If the map already contains an equivalent key, the new key
		// of a (key, value) pair is NOT stored in the map but the new
		// value only. But as the key is strongly referenced by the
		// map, it can not be removed from the garbage collector, even
		// if the key becomes weakly reachable due to the old
		// value. So, it isn't necessary to remove all garbage
		// collected values with their keys from the map before the
		// new entry is made. We only clean up here to distribute
		// clean up calls on different operations.
		processQueue();
		
		WeakValue oldValue = (WeakValue) super.put(key, WeakValue.create(key, value, queue));
		return getReferenceObject(oldValue);
	}
Puts a new (key,value) into the map.
<p>

@param key
key with which the specified value is to be associated.
@param value
value to be associated with the specified key.
@return previous value associated with specified key, or null if there was no mapping for key or the value has
been garbage collected by the garbage collector.