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 8d862c0226 Marshall module improvements
8d862c0226 is described below

commit 8d862c02264f2bb1f553c7b7e835334d5162a6e7
Author: James Bognar <[email protected]>
AuthorDate: Sun Dec 7 19:50:52 2025 -0500

    Marshall module improvements
---
 .../src/main/java/org/apache/juneau/BeanSession.java        |  5 +----
 .../src/main/java/org/apache/juneau/ClassMeta.java          | 13 +++++++------
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
index 9033dfc322..7006796ea7 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
@@ -1599,10 +1599,7 @@ public class BeanSession extends ContextSession {
         */
        protected final ClassMeta<Object[]> getArgsClassMeta(Type[] classes) {
                assertArgNotNull("classes", classes);
-               var cm = new ClassMeta<?>[classes.length];
-               for (var i = 0; i < classes.length; i++)
-                       cm[i] = getClassMeta(classes[i]);
-               return new ClassMeta(cm);
+               return new ClassMeta(Arrays.stream(classes).map(x -> 
getClassMeta(x)).toList());
        }
 
        /**
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 3799a34e15..c08c8c4452 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
@@ -29,6 +29,7 @@ import java.lang.reflect.Proxy;
 import java.net.*;
 import java.time.temporal.*;
 import java.util.*;
+import java.util.List;
 import java.util.concurrent.*;
 import java.util.function.*;
 
@@ -136,7 +137,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
                return true;
        }
 
-       private final ClassMeta<?>[] args;                                      
                                        // Arg types if this is an array of 
args.
+       private final List<ClassMeta<?>> args;                                  
                                        // Arg types if this is an array of 
args.
        private final BeanContext beanContext;                                  
                                        // The bean context that created this 
object.
        private final OptionalSupplier<BeanFilter> beanFilter;
        private final Supplier<BuilderSwap<T,?>> builderSwap;                   
                                        // The builder swap associated with 
this bean (if it has one).
@@ -326,7 +327,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
         * Constructor for args-arrays.
         */
        @SuppressWarnings("unchecked")
-       ClassMeta(ClassMeta<?>[] args) {
+       ClassMeta(List<ClassMeta<?>> args) {
                super((Class<T>)Object[].class);
                this.args = args;
                this.childSwaps = null;
@@ -490,9 +491,9 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
         * @throws BeanRuntimeException If this metadata object is not a list 
of arguments, or the index is out of range.
         */
        public ClassMeta<?> getArg(int index) {
-               if (nn(args) && index >= 0 && index < args.length)
-                       return args[index];
-               throw bex("Invalid argument index specified:  {0}.  Only {1} 
arguments are defined.", index, args == null ? 0 : args.length);
+               if (nn(args) && index >= 0 && index < args.size())
+                       return args.get(index);
+               throw bex("Invalid argument index specified:  {0}.  Only {1} 
arguments are defined.", index, args == null ? 0 : args.size());
        }
 
        /**
@@ -500,7 +501,7 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
         *
         * @return The argument types of this meta, or <jk>null</jk> if this 
isn't an array of argument types.
         */
-       public ClassMeta<?>[] getArgs() { return args; }
+       public List<ClassMeta<?>> getArgs() { return args; }
 
        /**
         * Returns the {@link BeanContext} that created this object.

Reply via email to