class MotanDemoServiceAsyncImpl implements MotanDemoServiceAsync {
    ExecutorService testExecutorService = Executors.newCachedThreadPool();

    @Override
    public String hello(String name) throws MotanServiceException {
        System.out.println(name);
        return "Hello " + name + "!";
    }

    @Override
    public User rename(User user, String name) {
        Objects.requireNonNull(user);
        System.out.println(user.getId() + " rename " + user.getName() + " to " + name);
        user.setName(name);
        return user;
    }

    @Override
    public ResponseFuture helloAsync(String name) {
        System.out.println("in async hello");
        final ResponseFuture motanResponseFuture = AsyncUtil.createResponseFutureForServerEnd();
        testExecutorService.submit(() -> motanResponseFuture.onSuccess(this.hello(name)));
        return motanResponseFuture;
    }

    @Override
    public ResponseFuture renameAsync(User user, String name) {<FILL_FUNCTION_BODY>}
}

        System.out.println("in async rename");
        final ResponseFuture motanResponseFuture = AsyncUtil.createResponseFutureForServerEnd();
        testExecutorService.submit(() -> {
            try {
                Thread.sleep(20);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            try {
                motanResponseFuture.onSuccess(this.rename(user, name));
            } catch (Exception e) {
                motanResponseFuture.onFailure(e);
            }
        });
        return motanResponseFuture;
    
<no_super_class>