Код для разблокировки com.veracode.was.utils.caching.redis.RedisLock имеет следующий вид:
private void unlock(boolean silent) {
if (rlock.isLocked()) {
if (!rlock.isHeldByCurrentThread()) {
if (!silent) {
throw new RuntimeException("Not allowed to unlock from thread that does not own the lock");
} else {
LOG.info("Not allowed to unlock from thread that does not own the lock");
}
} else {
rlock.unlock();
}
} else {
LOG.info("Already unlocked. Unnecessary call to unlock()");
}
}
Некоторые наши замки не могут пройти условие:
if (!rlock.isHeldByCurrentThread())
Итак, они остаются запертыми навсегда.
Есть ли способ снять эти замки?