@Override public void close() { client.close(); }
@Override public void close() { localClient.close(); }
@Override public void close() { localClient.close(); }
@Test public void closeShouldWaitAllOperationToFinish() { // given clientA.acquireShared( LockTracer.NONE, NODE, 1L ); clientA.acquireShared( LockTracer.NONE, NODE, 3L ); clientB.acquireShared( LockTracer.NONE, NODE, 1L ); acquireShared( clientC, LockTracer.NONE, NODE, 2L ); acquireExclusive( clientB, LockTracer.NONE, NODE, 1L ).callAndAssertWaiting(); acquireExclusive( clientC, LockTracer.NONE, NODE, 1L ).callAndAssertWaiting(); // when clientB.close(); clientC.close(); clientA.close(); // all locks should be closed at this point regardless of // reader/writer waiter in any threads // those should be gracefully finish and client should be closed LockCountVisitor lockCountVisitor = new LockCountVisitor(); locks.accept( lockCountVisitor ); assertEquals( 0, lockCountVisitor.getLockCount() ); }
@After public void tearDown() { client.close(); }
@Test public void releaseTryLocksOnClose() { assertTrue( clientA.trySharedLock( ResourceTypes.NODE, 1L ) ); assertTrue( clientB.tryExclusiveLock( ResourceTypes.NODE, 2L ) ); clientA.close(); clientB.close(); LockCountVisitor lockCountVisitor = new LockCountVisitor(); locks.accept( lockCountVisitor ); assertEquals( 0, lockCountVisitor.getLockCount() ); } }
@Test( expected = LockClientStoppedException.class ) public void shouldNotBeAbleToTryAcquireExclusiveLockFromClosedClient() { clientA.close(); clientA.tryExclusiveLock( NODE, 1L ); }
@Test( expected = LockClientStoppedException.class ) public void shouldNotBeAbleToAcquireExclusiveLockFromClosedClient() { clientA.close(); clientA.acquireExclusive( LockTracer.NONE, NODE, 1L ); }
@Override public void close() { client.close(); }
@Test( expected = LockClientStoppedException.class ) public void shouldNotBeAbleToAcquireSharedLockFromClosedClient() { clientA.close(); clientA.acquireShared( LockTracer.NONE, NODE, 1L ); }
@Test( expected = LockClientStoppedException.class ) public void shouldNotBeAbleToTryAcquireSharedLockFromClosedClient() { clientA.close(); clientA.trySharedLock( NODE, 1L ); }