protected final <T> Future<T> convert(final io.trane.future.Future<T> future) { final Promise<T> promise = Promise.apply(); promise.setInterruptHandler(new PartialFunction<Throwable, BoxedUnit>() { @Override public BoxedUnit apply(final Throwable v1) { future.raise(v1); return BoxedUnit.UNIT; } @Override public boolean isDefinedAt(final Throwable x) { return true; } }); future.onSuccess(promise::setValue).onFailure(promise::setException); return promise; }