public void testReentrantMultipleCall() throws ServiceException, InterruptedException {
final String path = UUID.randomUUID().toString();
ZKLocksService zkls = new ZKLocksService();
try {
zkls.init(Services.get());
ZKLockToken lock = (ZKLockToken) zkls.getWriteLock(path, 5000);
lock = (ZKLockToken) zkls.getWriteLock(path, 5000);
lock = (ZKLockToken) zkls.getWriteLock(path, 5000);
assertTrue(zkls.getLocks().containsKey(path));
lock.release();
assertTrue(zkls.getLocks().containsKey(path));
lock.release();
assertTrue(zkls.getLocks().containsKey(path));
lock.release();
assertFalse(zkls.getLocks().containsKey(path));
}
catch (Exception e) {
fail("Reentrant property, it should have acquired lock");
}