From 9b9688c6a28ba84f0df8b4c4f3c7df9029947eba Mon Sep 17 00:00:00 2001 From: YAGAMIL <2363753055@qq.com> Date: Sun, 21 May 2023 15:53:34 +0800 Subject: [PATCH] When PropertyValue "parameters" is [null] or [EMPTY], return to HashMap that can be modified (#12354) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * org.apache.dubbo.config.spring.util.DubboAnnotationUtils.convertParameters中put对象为空时,返回空的HashMap而不是EmptyMap以支持后续put * getParameters 补充this --------- Co-authored-by: 宿尘 --- .../java/org/apache/dubbo/config/AbstractMethodConfig.java | 5 ++++- .../dubbo/config/spring/util/DubboAnnotationUtils.java | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractMethodConfig.java b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractMethodConfig.java index d1978f62c4..ca8d15c68a 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractMethodConfig.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractMethodConfig.java @@ -23,7 +23,9 @@ import org.apache.dubbo.rpc.model.ModuleModel; import org.apache.dubbo.rpc.model.ScopeModel; import java.beans.Transient; +import java.util.HashMap; import java.util.Map; +import java.util.Optional; /** * AbstractMethodConfig @@ -240,7 +242,8 @@ public abstract class AbstractMethodConfig extends AbstractConfig { } public Map getParameters() { - return parameters; + this.parameters = Optional.ofNullable(this.parameters).orElseGet(HashMap::new); + return this.parameters; } public void setParameters(Map parameters) { diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/util/DubboAnnotationUtils.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/util/DubboAnnotationUtils.java index 9a24b0ffc8..5575a24c75 100644 --- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/util/DubboAnnotationUtils.java +++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/util/DubboAnnotationUtils.java @@ -27,7 +27,7 @@ import org.springframework.util.Assert; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -154,7 +154,7 @@ public class DubboAnnotationUtils { */ public static Map convertParameters(String[] parameters) { if (ArrayUtils.isEmpty(parameters)) { - return Collections.emptyMap(); + return new HashMap<>(); } List compatibleParameterArray = Arrays.stream(parameters)