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

commit 82ea6d092a2319038bf095881a14b2a89f4e8ca7
Author: James Bognar <[email protected]>
AuthorDate: Fri Dec 12 18:45:03 2025 -0500

    Marshall module improvements
---
 .../src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java | 3 +++
 .../src/main/java/org/apache/juneau/commons/utils/StringUtils.java     | 2 +-
 .../src/main/java/org/apache/juneau/BeanPropertyMeta.java              | 2 +-
 .../src/main/java/org/apache/juneau/BeanTraverseSession.java           | 3 ++-
 .../src/main/java/org/apache/juneau/collections/JsonMap.java           | 2 +-
 .../src/main/java/org/apache/juneau/serializer/Serializer.java         | 2 +-
 .../src/main/java/org/apache/juneau/rest/mock/MockPathResolver.java    | 3 ++-
 .../src/main/java/org/apache/juneau/rest/RestSession.java              | 2 +-
 .../main/java/org/apache/juneau/rest/httppart/RequestPathParams.java   | 2 +-
 .../src/main/java/org/apache/juneau/rest/util/UrlPathMatch.java        | 3 ++-
 10 files changed, 15 insertions(+), 9 deletions(-)

diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
index 92b335a864..3e30c4c13c 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
@@ -1584,6 +1584,9 @@ public class CollectionUtils {
                return Collections.emptyMap();
        }
 
+       public static <K,V> Map<K,V> mape() {
+               return Collections.emptyMap();
+       }
        /**
         * Returns a null map.
         *
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
index 2500475717..7f1f616d0c 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
@@ -6409,7 +6409,7 @@ public class StringUtils {
                if (s == null)
                        return null;  // NOSONAR - Intentional.
                if (isEmpty(s))
-                       return Collections.emptyMap();
+                       return mape();
 
                var m = new LinkedHashMap<String,String>();
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index 6a401231ca..f6d94bf103 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -830,7 +830,7 @@ public class BeanPropertyMeta implements 
Comparable<BeanPropertyMeta> {
                                return (Map)field.get(bean);
                        throw bex(beanMeta.getClassMeta(), "Getter or public 
field not defined on property ''{0}''", name);
                }
-               return Collections.EMPTY_MAP;
+               return mape();
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
index 040b3820f7..b7a0952af1 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
@@ -17,6 +17,7 @@
 package org.apache.juneau;
 
 import static org.apache.juneau.collections.JsonMap.*;
+import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.commons.utils.Utils.*;
 
 import java.text.*;
@@ -182,7 +183,7 @@ public class BeanTraverseSession extends BeanSession {
                if (isDetectRecursions() || isDebug()) {
                        set = new IdentityHashMap<>();
                } else {
-                       set = Collections.emptyMap();
+                       set = mape();
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/JsonMap.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/JsonMap.java
index 0747325bb3..9daf3f8b51 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/JsonMap.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/JsonMap.java
@@ -161,7 +161,7 @@ public class JsonMap extends LinkedHashMap<String,Object> {
 
                @Override /* Overridden from Map */
                public Collection<Object> values() {
-                       return Collections.emptyMap().values();
+                       return mape().values();
                }
        };
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
index 3b9afeab71..395808aee3 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
@@ -1379,7 +1379,7 @@ public class Serializer extends BeanTraverseContext {
         *      Never <jk>null</jk>.
         */
        public Map<String,String> getResponseHeaders(SerializerSession session) 
{
-               return Collections.emptyMap();
+               return mape();
        }
 
        @Override /* Overridden from Context */
diff --git 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockPathResolver.java
 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockPathResolver.java
index 9313e3e63f..d233a92364 100644
--- 
a/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockPathResolver.java
+++ 
b/juneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockPathResolver.java
@@ -16,6 +16,7 @@
  */
 package org.apache.juneau.rest.mock;
 
+import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.commons.utils.StateEnum.*;
 import static org.apache.juneau.commons.utils.StringUtils.*;
 import static org.apache.juneau.commons.utils.ThrowableUtils.*;
@@ -142,7 +143,7 @@ class MockPathResolver {
                pathToResolve = emptyIfNull(pathToResolve);
 
                if (! (pathToResolve.startsWith("http://";) || 
pathToResolve.startsWith("https://";))) {
-                       pathToResolve = fixSegment(pathToResolve, 
Collections.emptyMap());
+                       pathToResolve = fixSegment(pathToResolve, mape());
                        this.uri = target + contextPath + servletPath + 
pathToResolve;
                        this.target = target;
                        this.contextPath = contextPath;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
index 6be399cf59..55a3dcd3da 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
@@ -380,7 +380,7 @@ public class RestSession extends ContextSession {
        @SuppressWarnings("unchecked")
        public Map<String,String> getPathVars() {
                var m = 
(Map<String,String>)req.getAttribute(REST_PATHVARS_ATTR);
-               return m == null ? Collections.emptyMap() : m;
+               return m == null ? mape() : m;
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestPathParams.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestPathParams.java
index b4be06eb79..39945623a1 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestPathParams.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestPathParams.java
@@ -128,7 +128,7 @@ public class RequestPathParams extends 
ArrayList<RequestPathParam> {
 
                // Add parameters from parent context if any.
                @SuppressWarnings("unchecked")
-               var parentVars = 
(Map<String,String>)req.getAttribute("juneau.pathVars").orElse(Collections.emptyMap());
+               var parentVars = 
(Map<String,String>)req.getAttribute("juneau.pathVars").orElse(mape());
                for (var e : parentVars.entrySet())
                        add(e.getKey(), e.getValue());
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatch.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatch.java
index 866feeaec9..14bb810a8a 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatch.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatch.java
@@ -17,6 +17,7 @@
 package org.apache.juneau.rest.util;
 
 import static org.apache.juneau.collections.JsonMap.*;
+import static org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.apache.juneau.commons.utils.StringUtils.*;
 import static org.apache.juneau.commons.utils.Utils.*;
 
@@ -48,7 +49,7 @@ public class UrlPathMatch {
        protected UrlPathMatch(String path, int matchedParts, String[] keys, 
String[] values) {
                this.path = path;
                this.matchedParts = matchedParts;
-               this.vars = keys == null ? Collections.emptyMap() : new 
SimpleMap<>(keys, values);
+               this.vars = keys == null ? mape() : new SimpleMap<>(keys, 
values);
        }
 
        /**

Reply via email to