### Environment

* Dubbo version: 3.0

### Steps to reproduce this issue
测试dubbo-samples项目的AnnotationServicesIT.testGreeting方法时，偶尔会出现服务端超时触发此异常。
手工触发方法：
修改AnnotationAction.java的greetingService服务引用对象的method超时注解，从3000改为1000（服务端代码里有2000毫秒sleep），然后运行就会遇到NPE：
```
java.lang.NullPointerException 
	at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:85)
```
DecodeableRpcResult 85行代码：```if (invocation.getServiceModel() != null) { ```
服务端超时，此处invocation为null。
Assert.notNull(response, "response == null");
        Assert.notNull(is, "inputStream == null");
        this.channel = channel;
        this.response = response;
        this.inputStream = is;
        this.invocation = invocation;
        this.serializationType = id;
    }
    @Override
    public void encode(Channel channel, OutputStream output, Object message) throws IOException {
        throw new UnsupportedOperationException();
    }
    @Override
    public Object decode(Channel channel, InputStream input) throws IOException {
        if (log.isDebugEnabled()) {
            Thread thread = Thread.currentThread();
            log.debug("Decoding in thread -- [" + thread.getName() + "#" + thread.getId() + "]");
        }
        
        if (invocation.getServiceModel() != null) {
            Thread.currentThread().setContextClassLoader(invocation.getServiceModel().getClassLoader());
        }
        ObjectInput in = CodecSupport.getSerialization(channel.getUrl(), serializationType)
                .deserialize(channel.getUrl(), input);
        byte flag = in.readByte();
        switch (flag) {
            case DubboCodec.RESPONSE_NULL_VALUE:
                break;
            case DubboCodec.RESPONSE_VALUE:
                handleValue(in);