Avoid using old synchronized java.util.Stack
Use modern ArrayDeque instead
diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/core/GenericType.java b/jaxrs-api/src/main/java/jakarta/ws/rs/core/GenericType.java
index f34c480..2f5d4c7 100644
--- a/jaxrs-api/src/main/java/jakarta/ws/rs/core/GenericType.java
+++ b/jaxrs-api/src/main/java/jakarta/ws/rs/core/GenericType.java
@@ -21,8 +21,8 @@
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.lang.reflect.TypeVariable;
+import java.util.ArrayDeque;
 import java.util.Arrays;
-import java.util.Stack;
 
 /**
  * Represents a generic message entity type {@code T}.
@@ -198,7 +198,7 @@
      */
     static Type getTypeArgument(final Class<?> clazz, final Class<?> baseClass) {
         // collect superclasses
-        Stack<Type> superclasses = new Stack<Type>();
+        ArrayDeque<Type> superclasses = new ArrayDeque<>();
         Type currentType;
         Class<?> currentClass = clazz;
         do {