AbstractProxyTransaction implements Identifiable<TransactionIdentifier> { final void preCommit(final VotingFuture<?> ret) { checkReadWrite(); checkSealed(); final TransactionRequest<?> req = new TransactionPreCommitRequest(getIdentifier(), nextSequence(), localActor()); sendRequest(req, t -> { if (t instanceof TransactionPreCommitSuccess) { ret.voteYes(); } else if (t instanceof RequestFailure) { ret.voteNo(((RequestFailure<?, ?>) t).getCause().unwrap()); } else { ret.voteNo(unhandledResponseException(t)); } onPreCommitComplete(req); }); } AbstractProxyTransaction(final ProxyHistory parent, final boolean isDone); @Override final String toString();  }
@Test public abstract void testPreCommit();