5 nodes in JBoss Cache, pessimistic locking:
And the node "/a/b/locked" is write-locked by another thread. Then try to delete entire node "/a/b".
Node.acquireAll successfully acquires write-lock on "/a/b/c1" and "/a/b/c2", but a TimeoutException occurs on "/a/b/locked" (which is expected).
After this exception, locks on "/a/b/c1" and "/a/b/c2" are not released.
Actually, Node.acquireAll shall return acquired locks, but in this case doesn't return anything but throws an exception. So, previously acquired locks are not in "cache.getLockTable()", and can't be released by UnlockInterceptor.