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;
}