This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new f6232bbec9 Utility class modernization
f6232bbec9 is described below

commit f6232bbec92a6b4842563fc25167fab14007feb4
Author: James Bognar <[email protected]>
AuthorDate: Mon Nov 3 17:01:42 2025 -0500

    Utility class modernization
---
 .../juneau/common/reflect/ExecutableInfo.java      | 107 ++++++++-------------
 .../apache/juneau/common/reflect/MethodInfo.java   |   8 +-
 .../juneau/common/reflect/ParameterInfo.java       |  12 +--
 .../src/main/java/org/apache/juneau/BeanMeta.java  |  74 +++++++-------
 .../src/main/java/org/apache/juneau/ClassMeta.java |   8 +-
 .../java/org/apache/juneau/swap/BuilderSwap.java   |   4 +-
 .../java/org/apache/juneau/rest/RestContext.java   |   8 +-
 .../juneau/common/reflect/ClassInfo_Test.java      |   4 +-
 .../juneau/common/reflect/ExecutableInfo_Test.java |  24 ++---
 9 files changed, 110 insertions(+), 139 deletions(-)

diff --git 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ExecutableInfo.java
 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ExecutableInfo.java
index 339c9164e5..399e95795f 100644
--- 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ExecutableInfo.java
+++ 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ExecutableInfo.java
@@ -40,14 +40,13 @@ import java.util.stream.*;
 public abstract class ExecutableInfo extends AccessibleInfo {
 
        final ClassInfo declaringClass;
-       final Executable e;  // Effectively final.
+       final Executable e;
        final boolean isConstructor;
 
        private final Supplier<List<ParameterInfo>> parameters = 
memoize(this::findParameters);
        private final Supplier<List<ClassInfo>> exceptions = 
memoize(this::findExceptions);
        private final Supplier<List<AnnotationInfo<Annotation>>> 
declaredAnnotations = memoize(this::findDeclaredAnnotations);
 
-       private volatile ClassInfo[] paramTypes;
        private volatile Class<?>[] rawParamTypes;
        private volatile Type[] rawGenericParamTypes;
        private volatile Parameter[] rawParameters;
@@ -137,9 +136,9 @@ public abstract class ExecutableInfo extends AccessibleInfo 
{
         */
        public final int fuzzyArgsMatch(Class<?>...argTypes) {
                int matches = 0;
-               outer: for (ClassInfo pi : getParamTypes()) {
+               outer: for (var param : getParameters()) {
                        for (var a : argTypes) {
-                               if (pi.isParentOfFuzzyPrimitives(a)) {
+                               if 
(param.getParameterType().isParentOfFuzzyPrimitives(a)) {
                                        matches++;
                                        continue outer;
                                }
@@ -161,9 +160,9 @@ public abstract class ExecutableInfo extends AccessibleInfo 
{
         */
        public final int fuzzyArgsMatch(ClassInfo...argTypes) {
                int matches = 0;
-               outer: for (ClassInfo pi : getParamTypes()) {
+               outer: for (var param : getParameters()) {
                        for (var a : argTypes) {
-                               if (pi.isParentOfFuzzyPrimitives(a)) {
+                               if 
(param.getParameterType().isParentOfFuzzyPrimitives(a)) {
                                        matches++;
                                        continue outer;
                                }
@@ -185,9 +184,9 @@ public abstract class ExecutableInfo extends AccessibleInfo 
{
         */
        public final int fuzzyArgsMatch(Object...argTypes) {
                int matches = 0;
-               outer: for (ClassInfo pi : getParamTypes()) {
+               outer: for (var param : getParameters()) {
                        for (var a : argTypes) {
-                               if (pi.canAcceptArg(a)) {
+                               if (param.getParameterType().canAcceptArg(a)) {
                                        matches++;
                                        continue outer;
                                }
@@ -239,11 +238,11 @@ public abstract class ExecutableInfo extends 
AccessibleInfo {
                if (! isConstructor)
                        sb.append('.').append(getSimpleName());
                sb.append('(');
-               List<ClassInfo> pt = getParamTypes();
-               for (int i = 0; i < pt.size(); i++) {
+               var params = getParameters();
+               for (int i = 0; i < params.size(); i++) {
                        if (i > 0)
                                sb.append(',');
-                       pt.get(i).appendNameFormatted(sb, ClassNameFormat.FULL, 
true, '$', ClassArrayFormat.BRACKETS);
+                       
params.get(i).getParameterType().appendNameFormatted(sb, ClassNameFormat.FULL, 
true, '$', ClassArrayFormat.BRACKETS);
                }
                sb.append(')');
                return sb.toString();
@@ -280,24 +279,6 @@ public abstract class ExecutableInfo extends 
AccessibleInfo {
         */
        public final List<ParameterInfo> getParameters() { return 
parameters.get(); }
 
-       /**
-        * Returns the parameter type of the parameter at the specified index.
-        *
-        * @param index The parameter index.
-        * @return The parameter type of the parameter at the specified index.
-        */
-       public final ClassInfo getParamType(int index) {
-               checkIndex(index);
-               return _getParameterTypes()[index];
-       }
-
-       /**
-        * Returns the parameter types on this executable.
-        *
-        * @return The parameter types on this executable.
-        */
-       public final List<ClassInfo> getParamTypes() { return 
u(l(_getParameterTypes())); }
-
        /**
         * Returns the raw generic parameter type of the parameter at the 
specified index.
         *
@@ -412,13 +393,13 @@ public abstract class ExecutableInfo extends 
AccessibleInfo {
         * @return <jk>true</jk> if this method has this arguments in the exact 
order.
         */
        public final boolean hasMatchingParamTypes(Class<?>...args) {
-               ClassInfo[] pt = _getParameterTypes();
-               if (pt.length != args.length)
+               var params = getParameters();
+               if (params.size() != args.length)
                        return false;
-               for (var element : pt) {
+               for (var param : params) {
                        boolean matched = false;
                        for (var arg : args)
-                               if (element.isParentOfFuzzyPrimitives(arg))
+                               if 
(param.getParameterType().isParentOfFuzzyPrimitives(arg))
                                        matched = true;
                        if (! matched)
                                return false;
@@ -433,13 +414,13 @@ public abstract class ExecutableInfo extends 
AccessibleInfo {
         * @return <jk>true</jk> if this method has this arguments in the exact 
order.
         */
        public final boolean hasMatchingParamTypes(ClassInfo...args) {
-               ClassInfo[] pt = _getParameterTypes();
-               if (pt.length != args.length)
+               var params = getParameters();
+               if (params.size() != args.length)
                        return false;
-               for (var element : pt) {
+               for (var param : params) {
                        boolean matched = false;
                        for (var arg : args)
-                               if 
(element.isParentOfFuzzyPrimitives(arg.inner()))
+                               if 
(param.getParameterType().isParentOfFuzzyPrimitives(arg.inner()))
                                        matched = true;
                        if (! matched)
                                return false;
@@ -1081,40 +1062,30 @@ public abstract class ExecutableInfo extends 
AccessibleInfo {
                return x[index];
        }
 
-       final ClassInfo[] _getParameterTypes() {
-               if (paramTypes == null) {
-                       synchronized (this) {
-                               Class<?>[] ptc = e.getParameterTypes();
-                               // Note that due to a bug involving Enum 
constructors, getGenericParameterTypes() may
-                               // always return an empty array.  This appears 
to be fixed in Java 8 b75.
-                               Type[] ptt = e.getGenericParameterTypes();
-                               if (ptt.length != ptc.length) {
-                                       // Bug in javac: generic type array 
excludes enclosing instance parameter
-                                       // for inner classes with at least one 
generic constructor parameter.
-                                       if (ptt.length + 1 == ptc.length) {
-                                               Type[] ptt2 = new 
Type[ptc.length];
-                                               ptt2[0] = ptc[0];
-                                               for (int i = 0; i < ptt.length; 
i++)
-                                                       ptt2[i + 1] = ptt[i];
-                                               ptt = ptt2;
-                                       } else {
-                                               ptt = ptc;
-                                       }
-                               }
-                               ClassInfo[] l = new ClassInfo[ptc.length];
-                               for (int i = 0; i < ptc.length; i++)
-                                       l[i] = ClassInfo.of(ptc[i], ptt[i]);
-                               paramTypes = l;
-                       }
-               }
-               return paramTypes;
-       }
-
        private List<ParameterInfo> findParameters() {
                var rp = e.getParameters();
-               var types = _getParameterTypes();
+               var ptc = e.getParameterTypes();
+               // Note that due to a bug involving Enum constructors, 
getGenericParameterTypes() may
+               // always return an empty array.  This appears to be fixed in 
Java 8 b75.
+               var ptt = e.getGenericParameterTypes();
+               final Type[] genericTypes;
+               if (ptt.length != ptc.length) {
+                       // Bug in javac: generic type array excludes enclosing 
instance parameter
+                       // for inner classes with at least one generic 
constructor parameter.
+                       if (ptt.length + 1 == ptc.length) {
+                               var ptt2 = new Type[ptc.length];
+                               ptt2[0] = ptc[0];
+                               for (int i = 0; i < ptt.length; i++)
+                                       ptt2[i + 1] = ptt[i];
+                               genericTypes = ptt2;
+                       } else {
+                               genericTypes = ptc;
+                       }
+               } else {
+                       genericTypes = ptt;
+               }
                return IntStream.range(0, rp.length)
-                       .mapToObj(i -> new ParameterInfo(this, rp[i], i, 
types[i]))
+                       .mapToObj(i -> new ParameterInfo(this, rp[i], i, 
ClassInfo.of(ptc[i], genericTypes[i])))
                        .toList();
        }
 
diff --git 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/MethodInfo.java
 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/MethodInfo.java
index f4af1ff5dc..74c0caefdf 100644
--- 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/MethodInfo.java
+++ 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/MethodInfo.java
@@ -76,7 +76,7 @@ public class MethodInfo extends ExecutableInfo implements 
Comparable<MethodInfo>
 
        private static List<MethodInfo> findMatching(List<MethodInfo> l, 
MethodInfo m, ClassInfo c) {
                for (var m2 : c.getDeclaredMethods())
-                       if (m.hasName(m2.getName()) && 
Arrays.equals(m._getParameterTypes(), m2._getParameterTypes()))
+                       if (m.hasName(m2.getName()) && 
m.hasParamTypes(m2.getParameters().stream().map(ParameterInfo::getParameterType).toArray(ClassInfo[]::new)))
                                l.add(m2);
                ClassInfo pc = c.getSuperclass();
                if (nn(pc))
@@ -175,9 +175,9 @@ public class MethodInfo extends ExecutableInfo implements 
Comparable<MethodInfo>
         */
        public int canAcceptFuzzy(Object...args) {
                int matches = 0;
-               outer: for (ClassInfo pi : _getParameterTypes()) {
+               outer: for (var param : getParameters()) {
                        for (var a : args) {
-                               if (pi.canAcceptArg(a)) {
+                               if (param.getParameterType().canAcceptArg(a)) {
                                        matches++;
                                        continue outer;
                                }
@@ -771,7 +771,7 @@ public class MethodInfo extends ExecutableInfo implements 
Comparable<MethodInfo>
 
        MethodInfo findMatchingOnClass(ClassInfo c) {
                for (var m2 : c.getDeclaredMethods())
-               if (hasName(m2.getName()) && 
Arrays.equals(_getParameterTypes(), m2._getParameterTypes()))
+               if (hasName(m2.getName()) && 
hasParamTypes(m2.getParameters().stream().map(ParameterInfo::getParameterType).toArray(ClassInfo[]::new)))
                        return m2;
                return null;
        }
diff --git 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ParameterInfo.java
 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ParameterInfo.java
index 7a16d042b2..7acca4925c 100644
--- 
a/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ParameterInfo.java
+++ 
b/juneau-core/juneau-common/src/main/java/org/apache/juneau/common/reflect/ParameterInfo.java
@@ -164,7 +164,7 @@ public class ParameterInfo implements Annotatable {
        @SuppressWarnings("unchecked")
        public <A extends Annotation> A getAnnotation(Class<A> type, 
Predicate<A> filter) {
                if (executable.isConstructor) {
-                       ClassInfo ci = 
executable.getParamType(index).unwrap(Value.class, Optional.class);
+                       var ci = 
executable.getParameter(index).getParameterType().unwrap(Value.class, 
Optional.class);
                        A o = ci.getAnnotation(type, filter);
                        if (nn(o))
                                return o;
@@ -173,7 +173,7 @@ public class ParameterInfo implements Annotatable {
                                        return (A)a2;
                } else {
                        var mi = (MethodInfo)executable;
-                       ClassInfo ci = 
executable.getParamType(index).unwrap(Value.class, Optional.class);
+                       var ci = 
executable.getParameter(index).getParameterType().unwrap(Value.class, 
Optional.class);
                        A o = ci.getAnnotation(type, filter);
                        if (nn(o))
                                return o;
@@ -659,17 +659,17 @@ public class ParameterInfo implements Annotatable {
                        for (var a2 : 
executable._getParameterAnnotations(index))
                                if (type.isInstance(a2))
                                        return type.cast(a2);
-                       return 
executable.getParamType(index).unwrap(Value.class, 
Optional.class).getAnnotation(type);
+                       return 
executable.getParameter(index).getParameterType().unwrap(Value.class, 
Optional.class).getAnnotation(type);
                }
                var mi = (MethodInfo)executable;
                Value<A> v = Value.empty();
                mi.forEachMatchingParentFirst(x -> true, x -> 
x.forEachParameterAnnotation(index, type, y -> true, y -> v.set(y)));
-               return v.orElseGet(() -> 
executable.getParamType(index).unwrap(Value.class, 
Optional.class).getAnnotation(type));
+               return v.orElseGet(() -> 
executable.getParameter(index).getParameterType().unwrap(Value.class, 
Optional.class).getAnnotation(type));
        }
 
        private <A extends Annotation> ParameterInfo 
forEachAnnotation(AnnotationProvider ap, Class<A> a, Predicate<A> filter, 
Consumer<A> action) {
                if (executable.isConstructor) {
-                       ClassInfo ci = 
executable.getParamType(index).unwrap(Value.class, Optional.class);
+                       var ci = 
executable.getParameter(index).getParameterType().unwrap(Value.class, 
Optional.class);
                        Annotation[] annotations = 
executable._getParameterAnnotations(index);
                        ci.forEachAnnotation(ap, a, filter, action);
                        for (var a2 : annotations)
@@ -677,7 +677,7 @@ public class ParameterInfo implements Annotatable {
                                        consumeIf(filter, action, a.cast(a2));
                } else {
                        var mi = (MethodInfo)executable;
-                       ClassInfo ci = 
executable.getParamType(index).unwrap(Value.class, Optional.class);
+                       var ci = 
executable.getParameter(index).getParameterType().unwrap(Value.class, 
Optional.class);
                        ci.forEachAnnotation(ap, a, filter, action);
                        mi.forEachMatchingParentFirst(x -> true, x -> 
x.forEachParameterAnnotation(index, a, filter, action));
                }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
index 23ec935d46..4c28f06b03 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
@@ -610,14 +610,14 @@ public class BeanMeta<T> {
                                if (! (m.isVisible(v) || isNotEmpty(lp) || 
isNotEmpty(ln)))
                                        continue;
 
-                               String n = m.getSimpleName();
+                       String n = m.getSimpleName();
 
-                               List<ClassInfo> pt = m.getParamTypes();
-                               ClassInfo rt = m.getReturnType();
-                               MethodType methodType = UNKNOWN;
-                               String bpName = bpName(lp, ln);
+                       List<ParameterInfo> params = m.getParameters();
+                       ClassInfo rt = m.getReturnType();
+                       MethodType methodType = UNKNOWN;
+                       String bpName = bpName(lp, ln);
 
-                               if (pt.isEmpty()) {
+                       if (params.isEmpty()) {
                                        if ("*".equals(bpName)) {
                                                if 
(rt.isChildOf(Collection.class)) {
                                                        methodType = EXTRAKEYS;
@@ -642,14 +642,14 @@ public class BeanMeta<T> {
                                                } else {
                                                        n = bpName;
                                                }
-                                       }
-                               } else if (pt.size() == 1) {
-                                       if ("*".equals(bpName)) {
-                                               if 
(pt.get(0).isChildOf(Map.class)) {
-                                                       methodType = SETTER;
-                                                       n = bpName;
-                                               } else if 
(pt.get(0).is(String.class)) {
-                                                       methodType = GETTER;
+                               }
+                       } else if (params.size() == 1) {
+                               if ("*".equals(bpName)) {
+                                       if 
(params.get(0).getParameterType().isChildOf(Map.class)) {
+                                               methodType = SETTER;
+                                               n = bpName;
+                                       } else if 
(params.get(0).getParameterType().is(String.class)) {
+                                               methodType = GETTER;
                                                        n = bpName;
                                                }
                                        } else if (n.startsWith("set") && 
(rt.isParentOf(c) || rt.is(Void.TYPE))) {
@@ -669,9 +669,9 @@ public class BeanMeta<T> {
                                                }
                                        } else if (fluentSetters && 
rt.isParentOf(c)) {
                                                methodType = SETTER;
-                                       }
-                               } else if (pt.size() == 2) {
-                                       if ("*".equals(bpName) && 
pt.get(0).is(String.class)) {
+                               }
+                       } else if (params.size() == 2) {
+                               if ("*".equals(bpName) && 
params.get(0).getParameterType().is(String.class)) {
                                                if (n.startsWith("set") && 
(rt.isParentOf(c) || rt.is(Void.TYPE))) {
                                                        methodType = SETTER;
                                                } else {
@@ -792,27 +792,27 @@ public class BeanMeta<T> {
                if (! lp.isEmpty() || ! ln.isEmpty())
                        return;
 
-               String methodName = method.getSimpleName();
-               List<ClassInfo> paramTypes = method.getParamTypes();
-
-               // Walk up the class hierarchy looking for a matching parent 
method with @Beanp or @Name
-               var currentClass = ClassInfo.of(c);
-               ClassInfo sc = currentClass.getSuperclass();
-
-               while (nn(sc) && ! sc.is(stopClass) && ! sc.is(Object.class)) {
-                       // Look for a method with the same signature in the 
parent class
-                       for (var parentMethod : sc.getDeclaredMethods()) {
-                               if 
(parentMethod.getSimpleName().equals(methodName) && paramTypes.size() == 
parentMethod.getParamTypes().size()) {
-
-                                       // Check if parameter types match
-                                       boolean paramsMatch = true;
-                                       List<ClassInfo> parentParamTypes = 
parentMethod.getParamTypes();
-                                       for (int i = 0; i < paramTypes.size(); 
i++) {
-                                               if (! 
paramTypes.get(i).is(parentParamTypes.get(i).inner())) {
-                                                       paramsMatch = false;
-                                                       break;
-                                               }
+       String methodName = method.getSimpleName();
+       List<ParameterInfo> params = method.getParameters();
+
+       // Walk up the class hierarchy looking for a matching parent method 
with @Beanp or @Name
+       var currentClass = ClassInfo.of(c);
+       ClassInfo sc = currentClass.getSuperclass();
+
+       while (nn(sc) && ! sc.is(stopClass) && ! sc.is(Object.class)) {
+               // Look for a method with the same signature in the parent class
+               for (var parentMethod : sc.getDeclaredMethods()) {
+                       if (parentMethod.getSimpleName().equals(methodName) && 
params.size() == parentMethod.getParameters().size()) {
+
+                               // Check if parameter types match
+                               boolean paramsMatch = true;
+                               List<ParameterInfo> parentParams = 
parentMethod.getParameters();
+                               for (int i = 0; i < params.size(); i++) {
+                                       if (! 
params.get(i).getParameterType().is(parentParams.get(i).getParameterType().inner()))
 {
+                                               paramsMatch = false;
+                                               break;
                                        }
+                               }
 
                                        if (paramsMatch) {
                                                // Found a matching parent 
method - check for @Beanp and @Name annotations
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index f89d09800b..350d07f74e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -254,11 +254,11 @@ public class ClassMeta<T> implements Type {
 
                        // Find constructor(String) method if present.
                        ci.forEachPublicConstructor(cs -> cs.isPublic() && 
cs.isNotDeprecated(), cs -> {
-                               List<ClassInfo> pt = cs.getParamTypes();
-                               if (pt.size() == (isMemberClass ? 1 : 0) && c 
!= Object.class && ! isAbstract) {
+                               var params = cs.getParameters();
+                               if (params.size() == (isMemberClass ? 1 : 0) && 
c != Object.class && ! isAbstract) {
                                        noArgConstructor = cs;
-                               } else if (pt.size() == (isMemberClass ? 2 : 
1)) {
-                                       ClassInfo arg = pt.get(isMemberClass ? 
1 : 0);
+                               } else if (params.size() == (isMemberClass ? 2 
: 1)) {
+                                       var arg = params.get(isMemberClass ? 1 
: 0).getParameterType();
                                        if (arg.is(String.class))
                                                stringConstructor = cs;
                                }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/BuilderSwap.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/BuilderSwap.java
index fe7ce66d33..6e835cc12e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/BuilderSwap.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/swap/BuilderSwap.java
@@ -111,12 +111,12 @@ public class BuilderSwap<T,B> {
                        var cc = pci.getPublicConstructor(
                                x -> x.isVisible(cVis)
                                && x.hasNumParams(1)
-                               && x.getParamType(0).isChildOf(Builder.class)
+                               && 
x.getParameter(0).getParameterType().isChildOf(Builder.class)
                        );
                        // @formatter:on
                        if (nn(cc)) {
                                objectConstructor = cc;
-                               builderClass.set(cc.getParamType(0).inner());
+                               
builderClass.set(cc.getParameter(0).getParameterType().inner());
                        }
                }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index 8e9b220007..40b02bd053 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -5907,13 +5907,13 @@ public class RestContext extends Context {
        protected RestOpArg[] findRestOperationArgs(Method m, BeanStore 
beanStore) {
 
                var mi = MethodInfo.of(m);
-               var pt = mi.getParamTypes();
-               var ra = new RestOpArg[pt.size()];
+               var params = mi.getParameters();
+               var ra = new RestOpArg[params.size()];
 
                beanStore = BeanStore.of(beanStore, getResource());
 
-               for (int i = 0; i < pt.size(); i++) {
-                       ParameterInfo pi = mi.getParameter(i);
+               for (int i = 0; i < params.size(); i++) {
+                       var pi = params.get(i);
                        beanStore.addBean(ParameterInfo.class, pi);
                        for (var c : restOpArgs) {
                                try {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ClassInfo_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ClassInfo_Test.java
index ffd2074590..42de81bb98 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ClassInfo_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ClassInfo_Test.java
@@ -184,10 +184,10 @@ public class ClassInfo_Test extends TestBase {
 
        @Test void resolvedParams() {
                var mi2 = ClassInfo.of(A6.class).getPublicMethod(x -> 
x.hasName("m1"));
-               check("A1", mi2.getParamType(0).unwrap(Optional.class));
+               check("A1", 
mi2.getParameter(0).getParameterType().unwrap(Optional.class));
                check("A1", mi2.getReturnType().unwrap(Optional.class));
                mi2 = ClassInfo.of(A6.class).getPublicMethod(x -> 
x.hasName("m2"));
-               check("A1", mi2.getParamType(0).unwrap(Value.class));
+               check("A1", 
mi2.getParameter(0).getParameterType().unwrap(Value.class));
                check("A1", mi2.getReturnType().unwrap(Value.class));
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ExecutableInfo_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ExecutableInfo_Test.java
index 9f016d49b8..f15245bae0 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ExecutableInfo_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/common/reflect/ExecutableInfo_Test.java
@@ -164,15 +164,15 @@ class ExecutableInfo_Test extends TestBase {
        }
 
        @Test void getParamTypes() {
-               check("", b_c1.getParamTypes());
-               check("String", b_c2.getParamTypes());
-               check("", b_m1.getParamTypes());
-               check("String", b_m2.getParamTypes());
+               check("", 
b_c1.getParameters().stream().map(ParameterInfo::getParameterType).toList());
+               check("String", 
b_c2.getParameters().stream().map(ParameterInfo::getParameterType).toList());
+               check("", 
b_m1.getParameters().stream().map(ParameterInfo::getParameterType).toList());
+               check("String", 
b_m2.getParameters().stream().map(ParameterInfo::getParameterType).toList());
        }
 
        @Test void getParamTypes_twice() {
-               check("", b_c1.getParamTypes());
-               check("", b_c1.getParamTypes());
+               check("", 
b_c1.getParameters().stream().map(ParameterInfo::getParameterType).toList());
+               check("", 
b_c1.getParameters().stream().map(ParameterInfo::getParameterType).toList());
        }
 
        enum B1 {
@@ -180,14 +180,14 @@ class ExecutableInfo_Test extends TestBase {
        }
 
        @Test void getParamTypes_enum() {
-               var b1 = ClassInfo.of(B1.class);
-               check("B1(String,int)", b1.getDeclaredConstructors());
-               check("String,int", 
b1.getDeclaredConstructors().get(0).getParamTypes());
-       }
+       var b1 = ClassInfo.of(B1.class);
+       check("B1(String,int)", b1.getDeclaredConstructors());
+       check("String,int", 
b1.getDeclaredConstructors().get(0).getParameters().stream().map(ParameterInfo::getParameterType).toList());
+}
 
        @Test void getParamType() {
-               check("String", b_c2.getParamType(0));
-               check("String", b_m2.getParamType(0));
+               check("String", b_c2.getParameter(0).getParameterType());
+               check("String", b_m2.getParameter(0).getParameterType());
        }
 
        @Test void getRawParamTypes() {

Reply via email to