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

commit f61fb35554f0c71f9b71e939ccaa23028e4dbf48
Author: James Bognar <[email protected]>
AuthorDate: Tue Dec 9 10:10:43 2025 -0500

    Marshall module improvements
---
 .../src/main/java/org/apache/juneau/BeanMap.java             | 12 ++++++------
 .../src/main/java/org/apache/juneau/BeanMeta.java            |  4 ----
 .../src/main/java/org/apache/juneau/ClassMeta.java           |  4 ++--
 3 files changed, 8 insertions(+), 12 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
index e440ed6f64..c39d68f264 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
@@ -420,12 +420,12 @@ public class BeanMap<T> extends 
AbstractMap<String,Object> implements Delegate<T
         */
        public T getBean(boolean create) {
                /** If this is a read-only bean, then we need to create it. */
-               if (bean == null && create && meta.constructorArgs.length > 0) {
-                       var props = meta.constructorArgs;
-                       var c = meta.constructor;
-                       var args = new Object[props.length];
-                       for (var i = 0; i < props.length; i++)
-                               args[i] = propertyCache.remove(props[i]);
+               if (bean == null && create && 
isNotEmpty(meta.getConstructorArgs())) {
+                       var props = meta.getConstructorArgs();
+                       var c = meta.getConstructor();
+                       var args = new Object[props.size()];
+                       for (var i = 0; i < props.size(); i++)
+                               args[i] = propertyCache.remove(props.get(i));
                        try {
                                bean = c.<T>newInstance(args);
                                propertyCache.forEach((k, v) -> put(k, v));
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 12495ac366..b1ada01321 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
@@ -487,9 +487,6 @@ public class BeanMeta<T> {
        /** The constructor for this bean. */
        protected final BeanConstructor constructor2;
 
-       /** The constructor for this bean. */
-       protected final ConstructorInfo constructor;
-
        /** For beans with constructors with Beanc annotation, this is the list 
of constructor arg properties. */
        protected final String[] constructorArgs;
 
@@ -903,7 +900,6 @@ public class BeanMeta<T> {
                this.getterProps = u(getterProps);
                this.setterProps = u(setterProps);
                this.dynaProperty = dynaProperty.get();
-               this.constructor = constructor.get();
                this.constructorArgs = constructorArgs.get();
                this.constructor2 = new BeanConstructor(opt(constructor.get()), 
l(constructorArgs.get()));
                this.sortProperties = sortProperties;
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 d9133c07b3..6b38a47adf 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
@@ -350,10 +350,10 @@ public class ClassMeta<T> extends ClassInfoTyped<T> {
         */
        public boolean canCreateNewBean(Object outer) {
                var bm = getBeanMeta();
-               if (bm == null || bm.constructor == null)
+               if (bm == null || ! bm.hasConstructor())
                        return false;
                if (isMemberClass() && isNotStatic())
-                       return nn(outer) && 
bm.constructor.hasParameterTypes(outer.getClass());
+                       return nn(outer) && 
bm.getConstructor().hasParameterTypes(outer.getClass());
                return true;
        }
 

Reply via email to