jodd-core/src/main/java/jodd/cache/AbstractCacheMap.java
@Override
	public V remove(final K key) {
		V removedValue = null;
		final long stamp = lock.writeLock();
		try {
			CacheObject<K,V> co = cacheMap.remove(key);

			if (co != null) {
				onRemove(co.key, co.cachedObject);
				removedValue = co.cachedObject;
			}
		}
		finally {
			lock.unlockWrite(stamp);
		}
		return removedValue;
	}
@Override
	public V remove(final K key) {
		V removedValue = null;
		final long stamp = lock.writeLock();
		try {
			CacheObject<K,V> co = cacheMap.remove(key);

			if (co != null) {
				onRemove(co.key, co.cachedObject);
				removedValue = co.cachedObject;
			}
		}
		finally {
			lock.unlockWrite(stamp);
		}
		return removedValue;
	}
{@inheritDoc}