@Override
    public <T> Future<T> execute(final Executable<T> executable) {
        final Promise<T> promise = Promise();
        return execute(promise, () -> {
            try {
                executable.execute(promise);
                // if the implementation didn't respond to the Promise we mark it as a failure.
                if (!promise.isCompleted()) {
                    promise.failure(new IllegalStateException("No response was provided by the Promise"));
                }
            } catch (Exception ex) {
                promise.failure(ex);
            }
        });
    }
@Override
    public <T> Future<T> execute(final Executable<T> executable) {
        final Promise<T> promise = Promise();
        return execute(promise, () -> {
            try {
                executable.execute(promise);
                
                if (!promise.isCompleted()) {
                    promise.failure(new IllegalStateException("No response was provided by the Promise"));
                }
            } catch (Exception ex) {
                promise.failure(ex);
            }
        });
    }
@ Override public < T > Future < T > execute ( final Executable < T > executable ) { final Promise < T > promise = Promise ( ) ; return execute ( promise , ( ) -> { try { executable . execute ( promise ) ; // if the implementation didn't respond to the Promise we mark it as a failure. if ( ! promise . isCompleted ( ) ) { promise . failure ( new IllegalStateException ( "No response was provided by the Promise" ) ) ; } } catch ( Exception ex ) { promise . failure ( ex ) ; } } ) ; }
/*
(non-Javadoc)

@see com.ericsson.concurrent.Executor#execute(com.ericsson.concurrent.Executable)
/ * ( non - Javadoc )