From 3dd2feba159e8a5b40ec44df022d113012ee28f8 Mon Sep 17 00:00:00 2001 From: Mingyu Li Date: Mon, 11 Nov 2024 22:24:04 -0600 Subject: [PATCH 1/3] flaky test fixed --- .../wadlto/jaxrs/JAXRSContainerTest.java | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java b/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java index dbea1684c3c..979946704e6 100644 --- a/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java +++ b/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java @@ -26,9 +26,12 @@ import java.net.URL; import java.net.URLClassLoader; import java.nio.file.Files; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; import jakarta.validation.Valid; import jakarta.ws.rs.Consumes; @@ -48,7 +51,6 @@ import org.junit.Test; -import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -184,7 +186,7 @@ public void testThrows() throws Exception { methods.put("postThename", new Class[] {java.io.IOException.class, java.lang.NoSuchMethodException.class}); try (URLClassLoader loader = new URLClassLoader(new URL[]{output.toURI().toURL()})) { for (String className : cc.getServiceClassNames().values()) { - final Class generatedClass = loader.loadClass(className); + final Class generatedClass = loader.loadClass(className); for (Map.Entry[]> entry : methods.entrySet()) { Method m; try { @@ -192,7 +194,24 @@ public void testThrows() throws Exception { } catch (NoSuchMethodException e) { m = generatedClass.getMethod(entry.getKey(), String.class, String.class); } - assertArrayEquals(entry.getValue(), m.getExceptionTypes()); + ClassLoader classLoader = generatedClass.getClassLoader(); + Class[] expectedExceptions = new Class[entry.getValue().length]; + for (int i = 0; i < entry.getValue().length; i++) { + expectedExceptions[i] = classLoader.loadClass(entry.getValue()[i].getName()); + } + + // Compare exception class names + Set expectedExceptionNames = Arrays.stream(expectedExceptions) + .map(Class::getName) + .collect(Collectors.toSet()); + + Set actualExceptionNames = Arrays.stream(m.getExceptionTypes()) + .map(Class::getName) + .collect(Collectors.toSet()); + + assertEquals("Exceptions for method " + m.getName() + " do not match.", + expectedExceptionNames, actualExceptionNames); + } } } From 375589310286c7b88a64cc8f27c3e48e765c7fef Mon Sep 17 00:00:00 2001 From: Mingyu Li Date: Mon, 11 Nov 2024 22:26:28 -0600 Subject: [PATCH 2/3] remove white space --- .../org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java b/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java index 979946704e6..f03ea7ce459 100644 --- a/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java +++ b/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java @@ -186,7 +186,7 @@ public void testThrows() throws Exception { methods.put("postThename", new Class[] {java.io.IOException.class, java.lang.NoSuchMethodException.class}); try (URLClassLoader loader = new URLClassLoader(new URL[]{output.toURI().toURL()})) { for (String className : cc.getServiceClassNames().values()) { - final Class generatedClass = loader.loadClass(className); + final Class generatedClass = loader.loadClass(className); for (Map.Entry[]> entry : methods.entrySet()) { Method m; try { From d75afa53acfe95c141765dfbb59637f5f02febda Mon Sep 17 00:00:00 2001 From: Mingyu Li Date: Mon, 11 Nov 2024 22:35:12 -0600 Subject: [PATCH 3/3] change to linkedhashmap --- .../org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java b/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java index f03ea7ce459..9b19fc66210 100644 --- a/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java +++ b/tools/wadlto/jaxrs/src/test/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainerTest.java @@ -27,7 +27,7 @@ import java.net.URLClassLoader; import java.nio.file.Files; import java.util.Arrays; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -178,7 +178,7 @@ public void testThrows() throws Exception { ClassCollector cc = context.get(ClassCollector.class); assertEquals(2, cc.getServiceClassNames().size()); - final Map[]> methods = new HashMap<>(); + final Map[]> methods = new LinkedHashMap<>(); methods.put("listRepositories", new Class[] {}); methods.put("createRepository", new Class[] {java.io.IOException.class}); methods.put("deleteRepository",