/** * Return a holder of the result of the specified Promise. * * @since 1.1 */ static <R> Result<R> collect(Promise< ? extends R> promise) { if (promise instanceof PromiseImpl) { @SuppressWarnings("unchecked") PromiseImpl<R> impl = (PromiseImpl<R>) promise; return impl.collect(); } if (!promise.isDone()) { return new Result<R>(new AssertionError("promise not resolved")); } final boolean interrupted = Thread.interrupted(); try { Throwable fail = promise.getFailure(); if (fail == null) { return new Result<R>(promise.getValue()); } return new Result<R>(fail); } catch (Throwable e) { return new Result<R>(e); // propagate new exception } finally { if (interrupted) { // restore interrupt status Thread.currentThread().interrupt(); } } } }
/** * Return a holder of the result of the specified Promise. * * @since 1.1 */ static <R> Result<R> collect(Promise< ? extends R> promise) { if (promise instanceof PromiseImpl) { @SuppressWarnings("unchecked") PromiseImpl<R> impl = (PromiseImpl<R>) promise; return impl.collect(); } if (!promise.isDone()) { return new Result<R>(new AssertionError("promise not resolved")); } final boolean interrupted = Thread.interrupted(); try { Throwable fail = promise.getFailure(); if (fail == null) { return new Result<R>(promise.getValue()); } return new Result<R>(fail); } catch (Throwable e) { return new Result<R>(e); // propagate new exception } finally { if (interrupted) { // restore interrupt status Thread.currentThread().interrupt(); } } } }
/** * Return a holder of the result of the specified Promise. * * @since 1.1 */ static <R> Result<R> collect(Promise< ? extends R> promise) { if (promise instanceof PromiseImpl) { @SuppressWarnings("unchecked") PromiseImpl<R> impl = (PromiseImpl<R>) promise; return impl.collect(); } if (!promise.isDone()) { return new Result<R>(new AssertionError("promise not resolved")); } final boolean interrupted = Thread.interrupted(); try { Throwable fail = promise.getFailure(); if (fail == null) { return new Result<R>(promise.getValue()); } return new Result<R>(fail); } catch (Throwable e) { return new Result<R>(e); // propagate new exception } finally { if (interrupted) { // restore interrupt status Thread.currentThread().interrupt(); } } } }
/** * Return a holder of the result of the specified Promise. * * @since 1.1 */ static <R> Result<R> collect(Promise< ? extends R> promise) { if (promise instanceof PromiseImpl) { @SuppressWarnings("unchecked") PromiseImpl<R> impl = (PromiseImpl<R>) promise; return impl.collect(); } if (!promise.isDone()) { return new Result<R>(new AssertionError("promise not resolved")); } final boolean interrupted = Thread.interrupted(); try { Throwable fail = promise.getFailure(); if (fail == null) { return new Result<R>(promise.getValue()); } return new Result<R>(fail); } catch (Throwable e) { return new Result<R>(e); // propagate new exception } finally { if (interrupted) { // restore interrupt status Thread.currentThread().interrupt(); } } } }
/** * Return a holder of the result of the specified Promise. * * @since 1.1 */ static <R> Result<R> collect(Promise< ? extends R> promise) { if (promise instanceof PromiseImpl) { @SuppressWarnings("unchecked") PromiseImpl<R> impl = (PromiseImpl<R>) promise; return impl.collect(); } if (!promise.isDone()) { return new Result<R>(new AssertionError("promise not resolved")); } final boolean interrupted = Thread.interrupted(); try { Throwable fail = promise.getFailure(); if (fail == null) { return new Result<R>(promise.getValue()); } return new Result<R>(fail); } catch (Throwable e) { return new Result<R>(e); // propagate new exception } finally { if (interrupted) { // restore interrupt status Thread.currentThread().interrupt(); } } } }
/** * Return a holder of the result of the specified Promise. * * @since 1.1 */ static <R> Result<R> collect(Promise< ? extends R> promise) { if (promise instanceof PromiseImpl) { @SuppressWarnings("unchecked") PromiseImpl<R> impl = (PromiseImpl<R>) promise; return impl.collect(); } if (!promise.isDone()) { return new Result<R>(new AssertionError("promise not resolved")); } final boolean interrupted = Thread.interrupted(); try { Throwable fail = promise.getFailure(); if (fail == null) { return new Result<R>(promise.getValue()); } return new Result<R>(fail); } catch (Throwable e) { return new Result<R>(e); // propagate new exception } finally { if (interrupted) { // restore interrupt status Thread.currentThread().interrupt(); } } } }
/** * Return a holder of the result of the specified Promise. * * @since 1.1 */ static <R> Result<R> collect(Promise< ? extends R> promise) { if (promise instanceof PromiseImpl) { @SuppressWarnings("unchecked") PromiseImpl<R> impl = (PromiseImpl<R>) promise; return impl.collect(); } if (!promise.isDone()) { return new Result<R>(new AssertionError("promise not resolved")); } final boolean interrupted = Thread.interrupted(); try { Throwable fail = promise.getFailure(); if (fail == null) { return new Result<R>(promise.getValue()); } return new Result<R>(fail); } catch (Throwable e) { return new Result<R>(e); // propagate new exception } finally { if (interrupted) { // restore interrupt status Thread.currentThread().interrupt(); } } } }
/** * {@inheritDoc} */ @Override Result<T> collect() { return new Result<T>(fail); }
/** * {@inheritDoc} */ @Override Result<T> collect() { return new Result<T>(value); }
/** * {@inheritDoc} */ @Override Result<T> collect() { return new Result<T>(fail); }
/** * {@inheritDoc} */ @Override Result<T> collect() { return new Result<T>(value); }
/** * {@inheritDoc} */ @Override Result<T> collect() { return new Result<T>(value); }
/** * {@inheritDoc} */ @Override Result<T> collect() { return new Result<T>(fail); }