class VotingFuture extends AbstractFuture<T> {

    void voteNo(final Throwable cause) {
        synchronized (failures) {
            failures.add(cause);
            if (castVote()) {
                resolveResult();
            }
        }
    }

      VotingFuture(final T result, final int requiredVotes);

}