From ffce958ee037bf49e13f7f6cfce9ee212e3f2a8b Mon Sep 17 00:00:00 2001 From: cvictory Date: Tue, 25 Jun 2019 09:39:12 +0800 Subject: [PATCH] [No issue] Fix: @Method default value will be set to the field of MethodConfig (#3642) * fix #2842. fix duplicate SPI definitions * fix @Method set empty string into field --- .../com/alibaba/dubbo/config/MethodConfig.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/MethodConfig.java b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/MethodConfig.java index 7fa7140e3e2..391e42c701d 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/MethodConfig.java +++ b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/MethodConfig.java @@ -17,6 +17,7 @@ package com.alibaba.dubbo.config; import com.alibaba.dubbo.common.Constants; +import com.alibaba.dubbo.common.utils.StringUtils; import com.alibaba.dubbo.config.annotation.Method; import com.alibaba.dubbo.config.support.Parameter; @@ -83,9 +84,17 @@ public MethodConfig() { public MethodConfig(Method method) { appendAnnotation(Method.class, method); this.setReturn(method.isReturn()); - this.setOninvoke(method.oninvoke()); - this.setOnreturn(method.onreturn()); - this.setOnthrow(method.onthrow()); + + if(StringUtils.isNotEmpty(method.oninvoke())){ + this.setOninvoke(method.oninvoke()); + } + if(StringUtils.isNotEmpty(method.onreturn())){ + this.setOnreturn(method.onreturn()); + } + if(StringUtils.isNotEmpty(method.onthrow())){ + this.setOnthrow(method.onthrow()); + } + if (method.arguments() != null && method.arguments().length != 0) { List argumentConfigs = new ArrayList(method.arguments().length); this.setArguments(argumentConfigs);