This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.1
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.1 by this push:
new c80b79174c Fix config equals for issus#10419 (#10427)
c80b79174c is described below
commit c80b79174cd9f8621374728308b5cb87849d4caa
Author: zhaoyunxing <[email protected]>
AuthorDate: Mon Aug 15 09:56:13 2022 +0800
Fix config equals for issus#10419 (#10427)
---
.../java/org/apache/dubbo/config/AbstractConfig.java | 2 +-
.../org/apache/dubbo/config/AbstractConfigTest.java | 18 ++++++++++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git
a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractConfig.java
b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractConfig.java
index b341bdd0f9..09bc1a44e7 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractConfig.java
@@ -1023,7 +1023,7 @@ public abstract class AbstractConfig implements
Serializable {
List<Method> methods = new
ArrayList<>(beanInfo.getMethodDescriptors().length);
for (MethodDescriptor methodDescriptor :
beanInfo.getMethodDescriptors()) {
Method method = methodDescriptor.getMethod();
- if (MethodUtils.isGetter(method)) {
+ if (MethodUtils.isGetter(method) || isParametersGetter(method)) {
// filter non attribute
Parameter parameter = method.getAnnotation(Parameter.class);
if (parameter != null && !parameter.attribute()) {
diff --git
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
index 6fc328fcb1..c6eb0274df 100644
---
a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
+++
b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
@@ -654,6 +654,24 @@ public class AbstractConfigTest {
Assertions.assertNotEquals(protocol1, protocol2);
}
+ @Test
+ void testRegistryConfigEquals() {
+ RegistryConfig hangzhou = new RegistryConfig();
+ hangzhou.setAddress("nacos://localhost:8848");
+ HashMap<String, String> parameters = new HashMap<>();
+ parameters.put("namespace", "hangzhou");
+ hangzhou.setParameters(parameters);
+
+ RegistryConfig shanghai = new RegistryConfig();
+ shanghai.setAddress("nacos://localhost:8848");
+ parameters = new HashMap<>();
+ parameters.put("namespace", "shanghai");
+
+ shanghai.setParameters(parameters);
+
+ Assertions.assertNotEquals(hangzhou, shanghai);
+ }
+
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.ANNOTATION_TYPE})
public @interface ConfigField {