AbstractProxyTransaction implements Identifiable<TransactionIdentifier> { final void doCommit(final VotingFuture<?> ret) { checkReadWrite(); checkSealed(); sendRequest(new TransactionDoCommitRequest(getIdentifier(), nextSequence(), localActor()), t -> { if (t instanceof TransactionCommitSuccess) { ret.voteYes(); } else if (t instanceof RequestFailure) { ret.voteNo(((RequestFailure<?, ?>) t).getCause().unwrap()); } else { ret.voteNo(unhandledResponseException(t)); } LOG.debug("Transaction {} doCommit completed", this); parent.completeTransaction(this); enqueuePurge(); }); } AbstractProxyTransaction(final ProxyHistory parent, final boolean isDone); @Override final String toString();  }
@Test public abstract void testDoCommit();