### Environment

* Dubbo version: 3.1.0
* Operating System version: MacOS 13.0
* Java version: 1.8

### Steps to reproduce this issue
1. 写一个简单的项目（非spring项目）
2. main方法启动一个provider，对外暴露一个简单的api，比如DemoService#sayHi()，用sleep模拟一个耗时3秒的调用
3. main方法再启动一个consumer。创建两个reference去调用2中的api，第一个reference设置timeout为1秒，第二个reference设置超时为5秒

### 预期结果：
- 第一个调用超时，第二个调用正常

### 实际结果：
- 两个调用均超时了

这边提供一个用于重现bug的repo，希望能帮你们重现问题 https://github.com/QingJuBaiTang/dubbo-learn

}
        Map<String, String> newMap = new HashMap<>(reserveParams.length);
        Map<String, String> oldMap = result.getParameters();
        for (String reserveParam : reserveParams) {
            String tmp = oldMap.get(reserveParam);
            if (StringUtils.isNotEmpty(tmp)) {
                newMap.put(reserveParam, tmp);
            }
        }
        return result.clearParameters().addParameters(newMap);
    }
    public static URL valueOf(URL url, String[] reserveParams, String[] reserveParamPrefixes) {
        Map<String, String> newMap = new HashMap<>();
        Map<String, String> oldMap = url.getParameters();
        if (reserveParamPrefixes != null && reserveParamPrefixes.length != 0) {
            for (Map.Entry<String, String> entry : oldMap.entrySet()) {
                for (String reserveParamPrefix : reserveParamPrefixes) {
                    if (entry.getKey().startsWith(reserveParamPrefix) && StringUtils.isNotEmpty(entry.getValue())) {
                        newMap.put(entry.getKey(), entry.getValue());
                    }
                }
            }
        }
        if (reserveParams != null) {
            for (String reserveParam : reserveParams) {
                String tmp = oldMap.get(reserveParam);
                if (StringUtils.isNotEmpty(tmp)) {
                    newMap.put(reserveParam, tmp);
                }
            }