return copyElementForRead(removed);
} else {
try {
LOG.debug("remove: cache [{}] key [{}] soft locked in foreign transaction, waiting {}ms for soft lock to" +
" die...", new Object[] {cacheName, key, timeBeforeTimeout()});
boolean locked = softLock.tryLock(timeBeforeTimeout());
if (!locked) {
LOG.debug("remove: cache [{}] key [{}] soft locked in foreign transaction and not released before" +
" current transaction timeout", cacheName, key);
throw new DeadLockException("deadlock detected in cache [" + cacheName + "] on key [" + key + "] between" +
" current transaction [" + getCurrentTransactionContext().getTransactionId() + "] and foreign" +