- [x] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
- [x] I have checked the [FAQ](https://github.com/apache/dubbo/blob/master/FAQ.md) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 2.7.3-SNAPSHOT
* Operating System version: macOs
* Java version: JDK 1.8

### Steps to reproduce this issue

1. We cannot getFuture from alibaba RpcContext after setFuture, the result is null.
```
CompletableFuture future = new CompletableFuture();
com.alibaba.dubbo.rpc.RpcContext.getContext().setFuture(future);
Future result = com.alibaba.dubbo.rpc.RpcContext.getContext().getFuture();
```

Pls. provide [GitHub address] to reproduce this issue.

### Expected Result
result should be same new FutureAdapter(future);

### Actual Result

result is null.

If there is an exception, please attach the exception trace:

```
Just put your stack trace here!
```

private static RpcContext newInstance(org.apache.dubbo.rpc.RpcContext rpcContext) {
        RpcContext copy = new RpcContext();
        copy.getAttachments().putAll(rpcContext.getAttachments());
        copy.get().putAll(rpcContext.get());
        copy.setFuture(rpcContext.getCompletableFuture());
        copy.setUrls(rpcContext.getUrls());
        copy.setUrl(rpcContext.getUrl());
        copy.setMethodName(rpcContext.getMethodName());
        copy.setParameterTypes(rpcContext.getParameterTypes());
        copy.setArguments(rpcContext.getArguments());
        copy.setLocalAddress(rpcContext.getLocalAddress());
        copy.setRemoteAddress(rpcContext.getRemoteAddress());
        copy.setRemoteApplicationName(rpcContext.getRemoteApplicationName());
        copy.setInvokers(rpcContext.getInvokers());
        copy.setInvoker(rpcContext.getInvoker());
        copy.setInvocation(rpcContext.getInvocation());
        copy.setRequest(rpcContext.getRequest());
        copy.setResponse(rpcContext.getResponse());
        copy.setAsyncContext(rpcContext.getAsyncContext());
        return copy;
    }
    public <T> Future<T> getFuture() {
        CompletableFuture completableFuture = FutureContext.getContext().getCompatibleCompletableFuture();
        if (completableFuture == null) {
            return null;
        }
        return new FutureAdapter(completableFuture);
    }
}