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);
     }
 }

Reply via email to