boolean (@NotNull K key, @NotNull V oldValue, @NotNull V newValue) { KeyReference<K, V> oldKeyReference = createKeyReference(key, oldValue); ValueReference<K, V> oldValueReference = oldKeyReference.getValueReference(); KeyReference<K, V> newKeyReference = createKeyReference(key, newValue); ValueReference<K, V> newValueReference = newKeyReference.getValueReference(); boolean replaced = myMap.replace(oldKeyReference, oldValueReference, newValueReference); processQueues(); return replaced; }