One not common but typical usage of RpcContext.getFuture before 2.7.3 is as follow:

```java
      public final class TracingFilter implements Filter {
          public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
              Result result = invoker.invoke(invocation);
              Future<Object> future = rpcContext.getFuture();
              if (future instanceof FutureAdapter) {
                  ((FutureAdapter) future).getFuture().setCallback(new FinishSpanCallback(span));
               }
              ......
          }
      }
```

What we recommend in 2.7.3 now is: 

```java
      public final class TracingFilter implements Filter {
          public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
              Result result = invoker.invoke(invocation);
              result.whenComplete(new FinishSpanCallback(span));
              ......
          }
      }
```

Now, I find that `org.apache.dubbo.rpc.RpcContext.getFuture()` returns null when used in Filter. For users upgrading from 2.6.x, they may simply change `com.alibaba.dubbo.rpc.RpcContext.getFuture()` to `org.apache.dubbo.rpc.RpcContext.getFuture()`, it's not easy for them to notice this behavior difference. 

What I recommend is we need to keep a consistent behavior in 2.7.3.

private CompletableFuture<?> compatibleFuture;
    /**
     * get future.
     *
     * @param <T>
     * @return future
     */
    @SuppressWarnings("unchecked")
    public <T> CompletableFuture<T> getCompletableFuture() {
        return (CompletableFuture<T>) future;
    }
    /**
     * set future.
     *
     * @param future
     */
    public void setFuture(CompletableFuture<?> future) {
        this.future = future;
    }
    @Deprecated
    @SuppressWarnings("unchecked")
    public <T> CompletableFuture<T> getCompatibleCompletableFuture() {
        return (CompletableFuture<T>) compatibleFuture;
    }
    @Deprecated
    public void setCompatibleFuture(CompletableFuture<?> compatibleFuture) {
        this.compatibleFuture = compatibleFuture;
    }
}