This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0 by this push:
new 295f2a7 Fix flaky due to annotation order (#9123)
295f2a7 is described below
commit 295f2a767f1a2dd812e955bff8c5efb0eb97fd3f
Author: HildoYe <[email protected]>
AuthorDate: Thu Nov 4 04:03:21 2021 -0500
Fix flaky due to annotation order (#9123)
---
.../dubbo/common/utils/AnnotationUtilsTest.java | 34 +++++++++++++++-------
1 file changed, 24 insertions(+), 10 deletions(-)
diff --git
a/dubbo-common/src/test/java/org/apache/dubbo/common/utils/AnnotationUtilsTest.java
b/dubbo-common/src/test/java/org/apache/dubbo/common/utils/AnnotationUtilsTest.java
index 7c43465..74c9360 100644
---
a/dubbo-common/src/test/java/org/apache/dubbo/common/utils/AnnotationUtilsTest.java
+++
b/dubbo-common/src/test/java/org/apache/dubbo/common/utils/AnnotationUtilsTest.java
@@ -355,15 +355,29 @@ public class AnnotationUtilsTest {
private void assertADeclaredAnnotations(List<Annotation> annotations, int
offset) {
int size = 3 + offset;
assertEquals(size, annotations.size());
- Service service = (Service) annotations.get(offset++);
- assertEquals("java.lang.CharSequence", service.interfaceName());
- assertEquals(CharSequence.class, service.interfaceClass());
-
- com.alibaba.dubbo.config.annotation.Service s =
(com.alibaba.dubbo.config.annotation.Service) annotations.get(offset++);
- assertEquals("java.lang.CharSequence", service.interfaceName());
- assertEquals(CharSequence.class, service.interfaceClass());
-
- Adaptive adaptive = (Adaptive) annotations.get(offset++);
- assertArrayEquals(new String[]{"a", "b", "c"}, adaptive.value());
+ boolean apacheServiceFound = false;
+ boolean alibabaServiceFound = false;
+ boolean adaptiveFound = false;
+
+ for (Annotation annotation: annotations) {
+ if (!apacheServiceFound && (annotation instanceof Service)) {
+ assertEquals("java.lang.CharSequence",
((Service)annotation).interfaceName());
+ assertEquals(CharSequence.class,
((Service)annotation).interfaceClass());
+ apacheServiceFound = true;
+ continue;
+ }
+ if (!alibabaServiceFound && (annotation instanceof
com.alibaba.dubbo.config.annotation.Service)) {
+ assertEquals("java.lang.CharSequence",
((com.alibaba.dubbo.config.annotation.Service)annotation).interfaceName());
+ assertEquals(CharSequence.class,
((com.alibaba.dubbo.config.annotation.Service)annotation).interfaceClass());
+ alibabaServiceFound = true;
+ continue;
+ }
+ if (!adaptiveFound && (annotation instanceof Adaptive)) {
+ assertArrayEquals(new String[]{"a", "b", "c"},
((Adaptive)annotation).value());
+ adaptiveFound = true;
+ continue;
+ }
+ }
+ assertTrue(apacheServiceFound && alibabaServiceFound && adaptiveFound);
}
}