docs: public V putIfDifferent( final K key, final V value ) {
          synchronized ( _map ) {
              final ManagedItem<V> item = _map.get( key );
              if ( item == null || item._value == null || !item._value.equals( value ) ) {
                  return put( key, value );
              } else {
                  return item._value;
              }
          }
      }