public void completeExceptionally(Throwable value) {
        checkNotNull(value);

        if (this.value != EMPTY) {
            throw new IllegalStateException("Promise is already completed");
        }
        this.value = value;
        this.exceptional = true;

        for (BiConsumer<E, Throwable> consumer : consumers) {
            try {
                consumer.accept(null, value);
            } catch (Exception e) {
                eventloop.logger.warning(e);
            }
        }

        if (releaseOnComplete) {
            release();
        }
    }
@Test(expected = IllegalStateException.class)
    public void test_completeExceptionally_whenAlreadyCompleted() {
        Promise<String> promise = new Promise<>(reactor.eventloop);

        promise.completeExceptionally(new Throwable());
        promise.completeExceptionally(new Throwable());
    }