You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/11/04 09:03:31 UTC

[dubbo] branch 3.0 updated: Fix flaky due to annotation order (#9123)

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 <75...@users.noreply.github.com>
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);
     }
 }