@Override public void prepareForCommit( LockTracer lockTracer ) { // Locks where grabbed eagerly by client so no need to prepare client.prepare(); }
@Override public void prepare() { localClient.prepare(); }
@Test public void mustNotReleaseLocksAfterPrepareOnStop() { // Given clientA.acquireShared( TRACER, NODE, 1L ); clientA.acquireExclusive( TRACER, NODE, 2L ); clientA.prepare(); // When clientA.stop(); // The client entered the prepare phase, so it gets to keep its locks LockCountVisitor lockCountVisitor = new LockCountVisitor(); locks.accept( lockCountVisitor ); assertEquals( 2, lockCountVisitor.getLockCount() ); }
@Test public void prepareMustAllowAcquiringNewLocksAfterStop() { // Given clientA.prepare(); clientA.stop(); // When clientA.acquireShared( TRACER, NODE, 1 ); clientA.acquireExclusive( TRACER, NODE, 2 ); // Stopped essentially has no effect when it comes after the client has entered the prepare phase LockCountVisitor lockCountVisitor = new LockCountVisitor(); locks.accept( lockCountVisitor ); assertEquals( 2, lockCountVisitor.getLockCount() ); }
@Override public void prepareForCommit( LockTracer lockTracer ) { // Locks where grabbed eagerly by client so no need to prepare client.prepare(); }
@Test( expected = LockClientStoppedException.class ) public void prepareMustThrowWhenClientStopped() { stoppedClient().prepare(); }