code: public final Object invokeNextInterceptor(InvocationContext ctx, VisitableCommand command) throws Throwable {
        Object maybeStage = nextInterceptor.visitCommand(ctx, command);
        if (maybeStage instanceof SimpleAsyncInvocationStage) {
           return ((InvocationStage) maybeStage).get();
        } else {
           return maybeStage;
        }
     }
docs: Invokes the next interceptor in the chain.  This is how interceptor implementations should pass a call up the
  chain to the next interceptor.
  
  @param ctx     invocation context
  @param command command to pass up the chain.
  @return return value of the invocation
  @throws Throwable in the event of problems