private Object resolveAsync()

in provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TCPServer.java [98:122]


    private Object resolveAsync(Object result) throws InterruptedException {
        if (result instanceof Future) {
            Future<Object> fu = (Future<Object>) result;
            try {
                result = fu.get();
            } catch (ExecutionException e) {
                result = e.getCause();
            }
        } else if (result instanceof CompletionStage) {
            CompletionStage<Object> fu = (CompletionStage<Object>) result;
            try {
                result = fu.toCompletableFuture().get();
            } catch (ExecutionException e) {
                result = e.getCause();
            }
        } else if (result instanceof Promise) {
            Promise<Object> fu = (Promise<Object>) result;
            try {
                result = fu.getValue();
            } catch (InvocationTargetException e) {
                result = e.getCause();
            }
        }
        return result;
    }