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 b156f17753 TODO-289: Adopt Shorts idiom for IDIOM-01 sites in 
juneau-marshall + juneau-rest-server
b156f17753 is described below

commit b156f17753af68876ab032ce97bc32d47899d64e
Author: James Bognar <[email protected]>
AuthorDate: Thu Jul 23 14:05:40 2026 -0400

    TODO-289: Adopt Shorts idiom for IDIOM-01 sites in juneau-marshall + 
juneau-rest-server
    
    Mechanical, behavior-preserving substitutions across 43 files (100 sites):
    Collections.unmodifiable*(...) -> u(...), new ArrayList/LinkedList<>() -> 
l()/ll(),
    new HashMap/LinkedHashMap<>() -> m(), and Objects.equals(...) -> eq(...). 
Honors the
    *Utils and mutable-accumulator (SeoMixin/AuthFilterChain/DebugConfig) 
carve-outs;
    7 non-1:1 sites left as-is with rationale. Full reactor suite green.
    
    Co-authored-by: Cursor <[email protected]>
---
 .../org/apache/juneau/marshall/ContextSession.java |  2 +-
 .../org/apache/juneau/marshall/Enablement.java     |  3 ++-
 .../marshall/MarshalledPropertyPostProcessor.java  |  4 ++--
 .../apache/juneau/marshall/MarshallingContext.java |  4 ++--
 .../juneau/marshall/collections/JsonList.java      |  2 +-
 .../juneau/marshall/collections/JsonMap.java       |  4 ++--
 .../marshall/collections/MarshalledList.java       |  2 +-
 .../juneau/marshall/collections/MarshalledMap.java |  4 ++--
 .../apache/juneau/marshall/csv/CsvCellParser.java  |  2 +-
 .../juneau/marshall/csv/CsvParserSession.java      |  2 +-
 .../apache/juneau/marshall/hocon/HoconValue.java   |  4 ++--
 .../org/apache/juneau/marshall/html/HtmlTag.java   |  3 ++-
 .../juneau/marshall/ini/IniParserSession.java      |  5 ++--
 .../marshall/markdown/MarkdownParserSession.java   | 12 +++++-----
 .../marshall/objecttools/ObjectSearcher.java       |  2 +-
 .../marshall/objecttools/TimeMatcherFactory.java   |  3 ++-
 .../marshall/parquet/ParquetParserSession.java     | 28 +++++++++++-----------
 .../marshall/parquet/ParquetSerializerSession.java |  2 +-
 .../org/apache/juneau/marshall/parser/Parser.java  |  2 +-
 .../marshall/protobuf/ProtobufClassMeta.java       |  6 +++--
 .../marshall/protobuf/ProtobufParserSession.java   |  6 ++---
 .../protobuf/ProtobufSerializerSession.java        |  2 +-
 .../marshall/prototext/PrototextParserSession.java |  9 +++----
 .../prototext/PrototextSerializerSession.java      |  2 +-
 .../marshall/serializer/SerializerSession.java     |  6 ++---
 .../juneau/marshall/stream/RecordAdapter.java      |  4 +++-
 .../apache/juneau/marshall/swap/SurrogateSwap.java |  2 +-
 .../juneau/marshall/toml/TomlParserSession.java    |  9 +++----
 .../marshall/toml/TomlSerializerSession.java       |  4 ++--
 .../juneau/marshall/xml/XmlParserSession.java      |  6 ++---
 .../apache/juneau/marshall/xml/XmlSerializer.java  |  2 +-
 .../juneau/marshall/xml/XmlSerializerSession.java  |  4 ++--
 .../juneau/rest/server/AbstractRestBuilder.java    |  4 ++--
 .../apache/juneau/rest/server/RestChildren.java    | 12 +++++-----
 .../org/apache/juneau/rest/server/RestContext.java | 12 +++++-----
 .../org/apache/juneau/rest/server/RestRequest.java | 10 ++++----
 .../apache/juneau/rest/server/auth/AuthResult.java |  3 ++-
 .../juneau/rest/server/auth/ClaimsPrincipal.java   |  2 +-
 .../rest/server/convention/VersionProvider.java    |  4 ++--
 .../apache/juneau/rest/server/health/Health.java   |  5 ++--
 .../openapi/BasicOpenApiProviderSession.java       |  2 +-
 .../juneau/rest/server/ops/AdminProvider.java      |  4 ++--
 .../apache/juneau/rest/server/ops/EchoMixin.java   |  3 ++-
 43 files changed, 113 insertions(+), 100 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/ContextSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/ContextSession.java
index 0b8541b350..e5382c5e70 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/ContextSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/ContextSession.java
@@ -257,7 +257,7 @@ public abstract class ContextSession {
                if (unmodifiable)
                        return;
                if (warnings == null)
-                       warnings = new LinkedList<>();
+                       warnings = ll();
                warnings.add((warnings.size() + 1) + ": " + f(msg, args));
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/Enablement.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/Enablement.java
index 25621dba04..147b54f90c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/Enablement.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/Enablement.java
@@ -16,6 +16,7 @@
  */
 package org.apache.juneau.marshall;
 
+import static org.apache.juneau.commons.utils.Shorts.*;
 import static org.apache.juneau.commons.utils.StringUtils.*;
 
 import java.util.*;
@@ -41,7 +42,7 @@ public enum Enablement {
         */
        NEVER;
 
-       private static final Map<String,Enablement> MAP = new HashMap<>();
+       private static final Map<String,Enablement> MAP = m();
 
        static {
                MAP.put("TRUE", ALWAYS);
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/MarshalledPropertyPostProcessor.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/MarshalledPropertyPostProcessor.java
index b7590e7f0b..111a68a170 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/MarshalledPropertyPostProcessor.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/MarshalledPropertyPostProcessor.java
@@ -400,11 +400,11 @@ final class MarshalledPropertyPostProcessor implements 
BeanPropertyPostProcessor
                        return 
java.lang.reflect.Array.newInstance(propertyClass.getComponentType(), 0);
                if (List.class.isAssignableFrom(propertyClass) || 
Collection.class.equals(propertyClass)
                                || Iterable.class.equals(propertyClass))
-                       return new ArrayList<>();
+                       return l();
                if (Set.class.isAssignableFrom(propertyClass))
                        return new LinkedHashSet<>();
                if (Map.class.isAssignableFrom(propertyClass))
-                       return new LinkedHashMap<>();
+                       return m();
                // Primitive defaults — Java auto-unbox handles boxed-type 
assignment.
                if (propertyClass.isPrimitive()) {
                        if (boolean.class.equals(propertyClass)) return 
Boolean.FALSE;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/MarshallingContext.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/MarshallingContext.java
index 092dbb8d22..2fd4093a71 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/MarshallingContext.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/MarshallingContext.java
@@ -4789,7 +4789,7 @@ public class MarshallingContext extends Context 
implements ConversionFinder, Bea
 
        private static Collection<Object> newCollection(Class<?> outType) {
                if (outType == List.class || outType == Collection.class || 
outType == Iterable.class || outType == AbstractList.class)
-                       return new ArrayList<>();
+                       return l();
                if (outType == Set.class || outType == LinkedHashSet.class || 
outType == AbstractSet.class)
                        return new LinkedHashSet<>();
                if (outType == SortedSet.class || outType == NavigableSet.class 
|| outType == TreeSet.class)
@@ -4797,7 +4797,7 @@ public class MarshallingContext extends Context 
implements ConversionFinder, Bea
                try {
                        return (Collection<Object>) 
outType.getDeclaredConstructor().newInstance();
                } catch (@SuppressWarnings("unused") Exception e) {
-                       return new ArrayList<>();
+                       return l();
                }
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/JsonList.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/JsonList.java
index fa2938e3a6..7653e35190 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/JsonList.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/JsonList.java
@@ -275,7 +275,7 @@ public class JsonList extends MarshalledList {
 
                @Override /* Overridden from List */
                public List<Object> subList(int start, int end) {
-                       return Collections.unmodifiableList(new 
ArrayList<>(this).subList(start, end));
+                       return u(new ArrayList<>(this).subList(start, end));
                }
 
                private static Iterator<Object> 
readOnlyIterator(Iterator<Object> it) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/JsonMap.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/JsonMap.java
index df9288faab..f8b1fe2dd0 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/JsonMap.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/JsonMap.java
@@ -134,7 +134,7 @@ public class JsonMap extends MarshalledMap {
 
                @Override
                public Set<Map.Entry<String,Object>> entrySet() {
-                       return Collections.unmodifiableSet(super.entrySet());
+                       return u(super.entrySet());
                }
 
                @Override
@@ -142,7 +142,7 @@ public class JsonMap extends MarshalledMap {
 
                @Override
                public Set<String> keySet() {
-                       return Collections.unmodifiableSet(super.keySet());
+                       return u(super.keySet());
                }
 
                @Override
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/MarshalledList.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/MarshalledList.java
index 292fbe6950..d14346e83a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/MarshalledList.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/MarshalledList.java
@@ -229,7 +229,7 @@ public class MarshalledList extends LinkedList<Object> {
 
                @Override /* Overridden from List */
                public List<Object> subList(int start, int end) {
-                       return Collections.unmodifiableList(new 
ArrayList<>(this).subList(start, end));
+                       return u(new ArrayList<>(this).subList(start, end));
                }
 
                private static Iterator<Object> 
readOnlyIterator(Iterator<Object> it) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/MarshalledMap.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/MarshalledMap.java
index c14053106c..d83138321e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/MarshalledMap.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/collections/MarshalledMap.java
@@ -96,7 +96,7 @@ public class MarshalledMap extends 
LinkedHashMap<String,Object> {
 
                @Override
                public Set<Map.Entry<String,Object>> entrySet() {
-                       return Collections.unmodifiableSet(super.entrySet());
+                       return u(super.entrySet());
                }
 
                @Override
@@ -104,7 +104,7 @@ public class MarshalledMap extends 
LinkedHashMap<String,Object> {
 
                @Override
                public Set<String> keySet() {
-                       return Collections.unmodifiableSet(super.keySet());
+                       return u(super.keySet());
                }
 
                @Override
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/csv/CsvCellParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/csv/CsvCellParser.java
index 4963de7006..d5316d2357 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/csv/CsvCellParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/csv/CsvCellParser.java
@@ -144,7 +144,7 @@ public final class CsvCellParser {
        private List<Object> readArray() throws ParseException {
                if (consume() != '[')
                        throw new ParseException("Expected opening bracket");
-               var list = new ArrayList<>();
+               var list = l();
                skipWhitespace();
                if (peek() == ']') {
                        consume();
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/csv/CsvParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/csv/CsvParserSession.java
index d5c26ba95e..111e0c55b1 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/csv/CsvParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/csv/CsvParserSession.java
@@ -174,7 +174,7 @@ public class CsvParserSession extends ReaderParserSession 
implements RecordReada
 
                } else if (sType.isCollection()) {
                        var elementType = sType.getElementType();
-                       Collection<Object> l = 
sType.canCreateNewInstance(outer) ? (Collection<Object>) sType.newInstance() : 
new ArrayList<>();
+                       Collection<Object> l = 
sType.canCreateNewInstance(outer) ? (Collection<Object>) sType.newInstance() : 
l();
                        for (var row = r.readRow(); row != null; row = 
r.readRow())
                                l.add(readRow(headers, row, elementType, l));
                        o = l;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/hocon/HoconValue.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/hocon/HoconValue.java
index c0cb61b512..c26ddd0635 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/hocon/HoconValue.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/hocon/HoconValue.java
@@ -155,7 +155,7 @@ public abstract sealed class HoconValue {
         * HOCON array (maps to List or array).
         */
        public static final class HoconArray extends HoconValue {
-               private final List<HoconValue> elements = new ArrayList<>();
+               private final List<HoconValue> elements = l();
 
                @Override
                public Type getType() {
@@ -348,7 +348,7 @@ public abstract sealed class HoconValue {
         * HOCON value concatenation (adjacent values concatenated).
         */
        public static final class HoconConcat extends HoconValue {
-               private final List<HoconValue> parts = new ArrayList<>();
+               private final List<HoconValue> parts = l();
 
                @Override
                public Type getType() {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/html/HtmlTag.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/html/HtmlTag.java
index 3fad15a96f..a98cd5f429 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/html/HtmlTag.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/html/HtmlTag.java
@@ -17,6 +17,7 @@
 package org.apache.juneau.marshall.html;
 
 import static javax.xml.stream.XMLStreamConstants.*;
+import static org.apache.juneau.commons.utils.Shorts.*;
 
 import java.util.*;
 
@@ -131,7 +132,7 @@ enum HtmlTag {
                return t;
        }
 
-       private Map<Integer,HtmlTag> cache = new HashMap<>();
+       private Map<Integer,HtmlTag> cache = m();
 
        int id;
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/ini/IniParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/ini/IniParserSession.java
index fcd3749537..f01c86f9c6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/ini/IniParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/ini/IniParserSession.java
@@ -18,6 +18,7 @@ package org.apache.juneau.marshall.ini;
 
 import static org.apache.juneau.commons.function.Suppliers.*;
 import static org.apache.juneau.commons.utils.AssertionUtils.*;
+import static org.apache.juneau.commons.utils.Shorts.*;
 
 import java.io.*;
 import java.util.*;
@@ -129,7 +130,7 @@ public class IniParserSession extends ReaderParserSession 
implements RecordReada
         */
        protected Map<String,Map<String,String>> readIniContent(Reader r) 
throws IOException {
                var sections = new LinkedHashMap<String,Map<String,String>>();
-               var current = sections.computeIfAbsent("", k -> new 
LinkedHashMap<>());
+               var current = sections.computeIfAbsent("", k -> m());
                var br = r instanceof BufferedReader r2 ? r2 : new 
BufferedReader(r);
                String line;
                while ((line = br.readLine()) != null) {
@@ -141,7 +142,7 @@ public class IniParserSession extends ReaderParserSession 
implements RecordReada
                                if (end < 0)
                                        continue;
                                var sectionName = line.substring(1, end).trim();
-                               current = sections.computeIfAbsent(sectionName, 
k -> new LinkedHashMap<>());
+                               current = sections.computeIfAbsent(sectionName, 
k -> m());
                                continue;
                        }
                        var kv = splitKeyValue(line);
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/markdown/MarkdownParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/markdown/MarkdownParserSession.java
index 7c645a0163..94d2e52c2b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/markdown/MarkdownParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/markdown/MarkdownParserSession.java
@@ -367,13 +367,13 @@ public class MarkdownParserSession extends 
ReaderParserSession implements Record
 
                if (eType.isArray()) {
                        elementType = eType.getElementType();
-                       result = new ArrayList<>();
+                       result = l();
                } else if (eType.isCollection()) {
                        elementType = eType.getElementType();
-                       result = eType.canCreateNewInstance(outer) ? 
(Collection<Object>) eType.newInstance() : new ArrayList<>();
+                       result = eType.canCreateNewInstance(outer) ? 
(Collection<Object>) eType.newInstance() : l();
                } else if (eType.isObject()) {
                        elementType = object();
-                       result = new ArrayList<>();
+                       result = l();
                } else {
                        // Single bean/map with multiple columns — not a 
standard use case, parse first row
                        if (!dataLines.isEmpty()) {
@@ -524,13 +524,13 @@ public class MarkdownParserSession extends 
ReaderParserSession implements Record
 
                if (eType.isArray()) {
                        elementType = eType.getElementType();
-                       result = new ArrayList<>();
+                       result = l();
                } else if (eType.isCollection()) {
                        elementType = eType.getElementType();
-                       result = eType.canCreateNewInstance(outer) ? 
(Collection<Object>) eType.newInstance() : new ArrayList<>();
+                       result = eType.canCreateNewInstance(outer) ? 
(Collection<Object>) eType.newInstance() : l();
                } else {
                        elementType = eType.isObject() ? object() : eType;
-                       result = new ArrayList<>();
+                       result = l();
                }
 
                for (var item : items)
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/objecttools/ObjectSearcher.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/objecttools/ObjectSearcher.java
index 927924e755..b0f8919a4d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/objecttools/ObjectSearcher.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/objecttools/ObjectSearcher.java
@@ -158,7 +158,7 @@ public class ObjectSearcher implements 
ObjectTool<SearchArgs> {
         */
        private class RowMatcher {
 
-               Map<String,ColumnMatcher> entryMatchers = new HashMap<>();
+               Map<String,ColumnMatcher> entryMatchers = m();
                MarshallingSession bs;
 
                @SuppressWarnings({
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/objecttools/TimeMatcherFactory.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/objecttools/TimeMatcherFactory.java
index 8cc3874859..a91e1c281f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/objecttools/TimeMatcherFactory.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/objecttools/TimeMatcherFactory.java
@@ -18,6 +18,7 @@ package org.apache.juneau.marshall.objecttools;
 
 import static java.time.temporal.ChronoField.*;
 import static org.apache.juneau.commons.lang.StateEnum.*;
+import static org.apache.juneau.commons.utils.Shorts.*;
 
 import java.time.*;
 import java.util.*;
@@ -60,7 +61,7 @@ public class TimeMatcherFactory extends MatcherFactory {
                private static final AsciiSet WS = AsciiSet.of(" \t");
 
                TimestampRange[] ranges;
-               List<TimestampRange> l = new LinkedList<>();
+               List<TimestampRange> l = ll();
 
                @SuppressWarnings({
                        "java:S3776", // Cognitive complexity acceptable for 
parser state machine
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetParserSession.java
index 9fbff0c203..2130d9b103 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetParserSession.java
@@ -234,7 +234,7 @@ public class ParquetParserSession extends 
InputStreamParserSession implements Re
                        if (type.isCollection()) {
                                Object coll = type.newInstance();
                                if (coll == null)
-                                       coll = new ArrayList<>();
+                                       coll = l();
                                
((Collection<Object>)coll).add(convertToType(prepareMapForBean(inner, 
type.getElementType()), type.getElementType()));
                                return (T)coll;
                        }
@@ -251,7 +251,7 @@ public class ParquetParserSession extends 
InputStreamParserSession implements Re
                        if (keyType != null && 
!keyType.isAssignableTo(String.class) && isKeyValuePairFormat(rows)) {
                                var valueType = type.getValueType();
                                if (valueType == null) valueType = 
ctx.getMarshallingContext().getClassMeta(Object.class);
-                               var result = new LinkedHashMap<>();
+                               var result = m();
                                for (var row : rows) {
                                        var rowMap = (Map<?,?>)row;
                                        var rawKey = rowMap.get("key");
@@ -278,7 +278,7 @@ public class ParquetParserSession extends 
InputStreamParserSession implements Re
                }
                if (type.isArray()) {
                        var componentMeta = type.getElementType();
-                       var unwrapped = new ArrayList<>();
+                       var unwrapped = l();
                        for (var row : rows) {
                                var v = unwrapValueHolder(row, componentMeta);
                                unwrapped.add(v);
@@ -287,7 +287,7 @@ public class ParquetParserSession extends 
InputStreamParserSession implements Re
                }
                if (type.isCollection()) {
                        var collElemType = type.getElementType();
-                       var unwrapped = new ArrayList<>();
+                       var unwrapped = l();
                        for (var row : rows) {
                                var v = unwrapValueHolder(row, collElemType);
                                unwrapped.add(v);
@@ -866,11 +866,11 @@ public class ParquetParserSession extends 
InputStreamParserSession implements Re
                                        if (stacks[k] == null) stacks[k] = new 
ArrayList<>();
                                if (level == 1) {
                                        // Level-1 null is handled above 
(def==0); level-1 empty reaches here (def==1).
-                                       result.add(new ArrayList<>());
+                                       result.add(l());
                                } else if (isNull) {
                                        stacks[level - 2].add(null);   // null 
list at level k → parent gets null slot
                                } else {
-                                       stacks[level - 2].add(new 
ArrayList<>());  // empty list at level k
+                                       stacks[level - 2].add(l());  // empty 
list at level k
                                }
                        } else {
                                // Element (null if def < maxDef, present if 
def == maxDef).
@@ -898,7 +898,7 @@ public class ParquetParserSession extends 
InputStreamParserSession implements Re
                        }
                }
                while (result.size() < numRows)
-                       result.add(new ArrayList<>());
+                       result.add(l());
                return result;
        }
 
@@ -964,7 +964,7 @@ public class ParquetParserSession extends 
InputStreamParserSession implements Re
 
        private static List<Object> 
reconstructRowsFromListColumn(List<Object[]> flattened, int numRows, int 
maxDef) {
                var result = new ArrayList<>(numRows);
-               var current = new ArrayList<>();
+               var current = l();
                // def=0: list null; def=1: list present empty; def>=maxDef-1: 
element slot (value can be null)
                int elemPresentDef = Math.max(0, maxDef - 1);
                for (var e : flattened) {
@@ -979,7 +979,7 @@ public class ParquetParserSession extends 
InputStreamParserSession implements Re
                                if (def == 0)
                                        result.add(null);
                                else if (def < elemPresentDef)
-                                       result.add(new ArrayList<>());
+                                       result.add(l());
                                else if (def >= elemPresentDef)
                                        current.add(val);
                        } else if (def >= elemPresentDef) {
@@ -1023,7 +1023,7 @@ public class ParquetParserSession extends 
InputStreamParserSession implements Re
                        // one or more data pages.  Walk pages from 
dataPageOffset until the chunk's numValues
                        // level/value entries are consumed.
                        int valuesToRead = (int)Math.min(cc.numValues(), 
numRows);
-                       var values = new ArrayList<>();
+                       var values = l();
                        List<Object> dictionary = null;
                        int pageOff = (int)cc.dataPageOffset();
                        int consumed = 0;
@@ -1358,7 +1358,7 @@ public class ParquetParserSession extends 
InputStreamParserSession implements Re
                        var elemType = propClassMeta != null && 
(propClassMeta.isCollection() || propClassMeta.isArray()) ? 
propClassMeta.getElementType() : null;
                        if (elemType != null && elemType.isBean()) {
                                var elementProp = 
rowRelPath.substring(suffixStart);
-                               groups.computeIfAbsent(listProp, k -> new 
ArrayList<>()).add(new ListColumnInfo(fullPath, elementProp, elemType));
+                               groups.computeIfAbsent(listProp, k -> 
l()).add(new ListColumnInfo(fullPath, elementProp, elemType));
                        }
                }
                return groups;
@@ -1388,9 +1388,9 @@ public class ParquetParserSession extends 
InputStreamParserSession implements Re
        private Map<Object,Object> mergeMapColumns(MapColumnInfo info, 
Map<String,List<Object>> columnData, int rowIndex) throws ParseException {
                var keyList = (List<?>) 
columnData.get(info.keyColumnPath()).get(rowIndex);
                if (keyList.isEmpty())
-                       return new LinkedHashMap<>();
+                       return m();
                var valueList = (List<?>) 
columnData.get(info.valueColumnPath()).get(rowIndex);
-               var result = new LinkedHashMap<>();
+               var result = m();
                var valueIter = valueList.iterator();
                for (var k : keyList) {
                        var v = valueIter.next();
@@ -1585,7 +1585,7 @@ public class ParquetParserSession extends 
InputStreamParserSession implements Re
                        result = null;
                }
                if (result == null)
-                       result = new ArrayList<>();
+                       result = l();
                for (var v : values)
                        result.add((Object)convertToType(v, elemType));
                return result;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetSerializerSession.java
index 3ec754d1b7..36d42f2f52 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parquet/ParquetSerializerSession.java
@@ -252,7 +252,7 @@ public class ParquetSerializerSession extends 
OutputStreamSerializerSession impl
                        if (firstKey instanceof String || firstKey == null) {
                                // Apply POJO swaps to map values so types like 
A (with swap to JsonMap) use their swapped schema/encoding.
                                // Replace null keys with the null-key sentinel 
so they survive as a named column in the schema.
-                               var swappedMap = new LinkedHashMap<>();
+                               var swappedMap = m();
                                for (var e : m.entrySet()) {
                                        var key = e.getKey() == null ? 
ctx.nullKeyString : trim(e.getKey());
                                        var val = e.getValue();
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parser/Parser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parser/Parser.java
index 5178154c2e..0e1e1d2df9 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parser/Parser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/parser/Parser.java
@@ -623,7 +623,7 @@ public class Parser extends MarshallingContextable {
                nulls = builder.nulls == null ? Nulls.NOT_SET : builder.nulls;
 
        String[] consumesParts = splita(nn(consumes) ? consumes : "");
-       List<MediaType> consumesList = new ArrayList<>();
+       List<MediaType> consumesList = l();
        for (var consume : consumesParts) {
                consumesList.add(MediaType.of(consume));
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/protobuf/ProtobufClassMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/protobuf/ProtobufClassMeta.java
index 1fbe9d3cd7..d7041c761d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/protobuf/ProtobufClassMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/protobuf/ProtobufClassMeta.java
@@ -16,6 +16,8 @@
  */
 package org.apache.juneau.marshall.protobuf;
 
+import static org.apache.juneau.commons.utils.Shorts.*;
+
 import java.math.*;
 import java.util.*;
 
@@ -102,8 +104,8 @@ public class ProtobufClassMeta extends ExtendedClassMeta {
                        }
                }
 
-               this.entriesByName = Collections.unmodifiableMap(byName);
-               this.entriesByNumber = Collections.unmodifiableMap(byNumber);
+               this.entriesByName = u(byName);
+               this.entriesByNumber = u(byNumber);
                this.entries = List.copyOf(byNumber.values());
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/protobuf/ProtobufParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/protobuf/ProtobufParserSession.java
index f69d11614f..045282a5ee 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/protobuf/ProtobufParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/protobuf/ProtobufParserSession.java
@@ -131,7 +131,7 @@ public class ProtobufParserSession extends 
InputStreamParserSession {
                                case SCALAR -> setProperty(m, entry, 
decodeSingle(entry.scalarType(), entry.propertyType(), is, m.getBean(false)));
                                case MESSAGE -> setProperty(m, entry, 
decodeSingle(ProtobufScalarType.AUTO, entry.propertyType(), is, 
m.getBean(false)));
                                case PACKED_REPEATED -> {
-                                       var list = repeated.computeIfAbsent(fn, 
k -> new ArrayList<>());
+                                       var list = repeated.computeIfAbsent(fn, 
k -> l());
                                        var elType = 
entry.propertyType().getElementType();
                                        if (wt == WireType.LEN) {
                                                var sub = new 
ProtobufReader(is.readLenDelimited());
@@ -143,7 +143,7 @@ public class ProtobufParserSession extends 
InputStreamParserSession {
                                        }
                                }
                                case TAGGED_REPEATED -> {
-                                       var list = repeated.computeIfAbsent(fn, 
k -> new ArrayList<>());
+                                       var list = repeated.computeIfAbsent(fn, 
k -> l());
                                        var elType = 
entry.propertyType().getElementType();
                                        var elSwap = elType == null ? null : 
elType.getSwap(this);
                                        if (elSwap != null)
@@ -154,7 +154,7 @@ public class ProtobufParserSession extends 
InputStreamParserSession {
                                                
list.add(decodeScalar(entry.scalarType(), elType, is));
                                }
                                case MAP -> {
-                                       var map = maps.computeIfAbsent(fn, k -> 
new LinkedHashMap<>());
+                                       var map = maps.computeIfAbsent(fn, k -> 
m());
                                        readMapEntry(entry.propertyType(), new 
ProtobufReader(is.readLenDelimited()), map);
                                }
                        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/protobuf/ProtobufSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/protobuf/ProtobufSerializerSession.java
index e6605b4f34..ae9d0c8ad7 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/protobuf/ProtobufSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/protobuf/ProtobufSerializerSession.java
@@ -302,7 +302,7 @@ public class ProtobufSerializerSession extends 
OutputStreamSerializerSession {
                        return new ArrayList<>(value2);
                if (value != null && value.getClass().isArray())
                        return toList(value.getClass(), value);
-               return new ArrayList<>();
+               return l();
        }
 
        private static boolean toBoolean(Object value) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextParserSession.java
index e7ac23b538..99f54fadff 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextParserSession.java
@@ -18,6 +18,7 @@ package org.apache.juneau.marshall.prototext;
 
 import static org.apache.juneau.commons.utils.AssertionUtils.*;
 import static org.apache.juneau.commons.utils.CollectionUtils.isEmpty;
+import static org.apache.juneau.commons.utils.Shorts.*;
 import static org.apache.juneau.commons.utils.StringUtils.isEmpty;
 
 import java.io.*;
@@ -123,7 +124,7 @@ public class PrototextParserSession extends 
ReaderParserSession implements Recor
                        else if (tok.type() == PrototextToken.TokenType.LANGLE)
                                closeBrace = PrototextToken.TokenType.RANGLE;
                        else
-                               return new LinkedHashMap<>();
+                               return m();
                }
 
                var result = new LinkedHashMap<String,Object>();
@@ -166,7 +167,7 @@ public class PrototextParserSession extends 
ReaderParserSession implements Recor
                        if (result.containsKey(fieldName)) {
                                var existing = result.get(fieldName);
                                if (!(existing instanceof List)) {
-                                       var list = new ArrayList<>();
+                                       var list = l();
                                        list.add(existing);
                                        result.put(fieldName, list);
                                        existing = list;
@@ -206,7 +207,7 @@ public class PrototextParserSession extends 
ReaderParserSession implements Recor
                var tok = t.read();
                if (tok.type() != PrototextToken.TokenType.LBRACKET)
                        throw t.parseException("Expected '['");
-               var list = new ArrayList<>();
+               var list = l();
                t.skipWhitespaceAndComments();
                tok = t.peek();
                if (tok.type() == PrototextToken.TokenType.RBRACKET) {
@@ -353,7 +354,7 @@ public class PrototextParserSession extends 
ReaderParserSession implements Recor
                }
                if (val instanceof List val2 && 
targetType.isCollectionOrArray()) {
                        var elType = targetType.getElementType();
-                       var result = new ArrayList<>();
+                       var result = l();
                        for (Object item : val2)
                                result.add(convertValue(item, elType));
                        return targetType.isArray() ? toArray(targetType, 
result) : result;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextSerializerSession.java
index 50149cbb90..8e8eca56ef 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/prototext/PrototextSerializerSession.java
@@ -59,7 +59,7 @@ public class PrototextSerializerSession extends 
WriterSerializerSession implemen
        public static void setDebugTrace(boolean value) { debugTrace = value; }
 
        /** Last trace output when debugTrace was enabled. */
-       protected static final List<String> traceLog = new ArrayList<>();
+       protected static final List<String> traceLog = l();
 
        /**
         * Builder for Prototext serializer session.
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/serializer/SerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/serializer/SerializerSession.java
index 136de537b2..9b02a13937 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/serializer/SerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/serializer/SerializerSession.java
@@ -712,10 +712,10 @@ public class SerializerSession extends 
MarshallingTraverseSession {
                        try {
                                return 
toBigDecimal(an).compareTo(toBigDecimal(bn)) == 0;
                        } catch (NumberFormatException e) {  // HTT — 
defensive: a Number subclass whose toString() isn't a valid decimal.
-                               return Objects.equals(a, b);
+                               return eq(a, b);
                        }
                }
-               return Objects.equals(a, b);
+               return eq(a, b);
        }
 
        private static BigDecimal toBigDecimal(Number n) {
@@ -837,7 +837,7 @@ public class SerializerSession extends 
MarshallingTraverseSession {
         * @since 9.2.1
         */
        public final List<Object> toListFromStreamable(Object o, ClassMeta<?> 
type) {
-               var list = new ArrayList<>();
+               var list = l();
                forEachStreamableEntry(o, type, list::add);
                return list;
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/stream/RecordAdapter.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/stream/RecordAdapter.java
index 705fff1726..81a140c420 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/stream/RecordAdapter.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/stream/RecordAdapter.java
@@ -16,6 +16,8 @@
  */
 package org.apache.juneau.marshall.stream;
 
+import static org.apache.juneau.commons.utils.Shorts.*;
+
 import java.io.*;
 import java.lang.reflect.*;
 import java.util.*;
@@ -184,7 +186,7 @@ public final class RecordAdapter {
         */
        public static RecordWriter arrayWriter(SerializerSession session, 
Object output) {
                return new RecordWriter() {
-                       private final List<Object> buf = new ArrayList<>();
+                       private final List<Object> buf = l();
                        private boolean closed;
 
                        @Override public RecordWriter write(Object value) {
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/swap/SurrogateSwap.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/swap/SurrogateSwap.java
index f4f158c0a7..d6cd3eb3e8 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/swap/SurrogateSwap.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/swap/SurrogateSwap.java
@@ -57,7 +57,7 @@ public class SurrogateSwap<T,F> extends ObjectSwap<T,F> {
                "java:S1452"  // Wildcard required - List<SurrogateSwap<?,?>> 
for multiple constructor-based swaps
        })
        public static List<SurrogateSwap<?,?>> findObjectSwaps(Class<?> c, 
MarshallingContext bc) {
-               List<SurrogateSwap<?,?>> l = new LinkedList<>();
+               List<SurrogateSwap<?,?>> l = ll();
                var ci = info(c);
                ci.getPublicConstructors().stream().filter(x -> ! 
bc.getAnnotationProvider().has(BeanIgnore.class, x) && x.hasNumParameters(1) && 
x.isPublic()).forEach(x -> {
                        var pt = x.getParameter(0).getParameterType().inner();
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlParserSession.java
index 02f1b8b25c..34dcf7b97c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlParserSession.java
@@ -18,6 +18,7 @@ package org.apache.juneau.marshall.toml;
 
 import static org.apache.juneau.commons.utils.AssertionUtils.*;
 import static org.apache.juneau.commons.utils.CollectionUtils.isEmpty;
+import static org.apache.juneau.commons.utils.Shorts.*;
 import static org.apache.juneau.commons.utils.StringUtils.isEmpty;
 
 import java.io.*;
@@ -123,7 +124,7 @@ public class TomlParserSession extends ReaderParserSession 
implements RecordRead
        }
 
        private Map<String,Object> readTomlDocument(TomlTokenizer t) throws 
IOException, ParseException {
-               Map<String,Object> root = new LinkedHashMap<>();
+               Map<String,Object> root = m();
                Map<String,Object> currentTable = root;
 
                while (!t.isEof()) {
@@ -141,10 +142,10 @@ public class TomlParserSession extends 
ReaderParserSession implements RecordRead
                                        if (!(existing instanceof List)) {
                                                if (existing != null)
                                                        throw 
t.parseException("Key " + path + " redefined");
-                                               setAt(root, path, new 
ArrayList<>());
+                                               setAt(root, path, l());
                                                existing = getOrCreateAt(root, 
path);
                                        }
-                                       Map<String,Object> newTable = new 
LinkedHashMap<>();
+                                       Map<String,Object> newTable = m();
                                        ((List)existing).add(newTable);
                                        currentTable = newTable;
                                } else {
@@ -222,7 +223,7 @@ public class TomlParserSession extends ReaderParserSession 
implements RecordRead
                if (c == '[') {
                        t.read();
                        t.skipWhitespaceAndComments();
-                       var list = new ArrayList<>();
+                       var list = l();
                        while (t.peek() != ']') {
                                list.add(readValue(t));
                                t.skipWhitespaceAndComments();
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlSerializerSession.java
index 5c6001a63e..43327000b2 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/toml/TomlSerializerSession.java
@@ -164,8 +164,8 @@ public class TomlSerializerSession extends 
WriterSerializerSession implements Re
 
        private void writeBean(TomlWriter w, BeanMap<?> m, String tablePath) 
throws SerializeException {
                Predicate<Object> checkNull = x -> isKeepNullProperties() || 
nn(x);
-               List<Map.Entry<BeanPropertyMeta,Object>> simple = new 
ArrayList<>();
-               List<Map.Entry<BeanPropertyMeta,Object>> complex = new 
ArrayList<>();
+               List<Map.Entry<BeanPropertyMeta,Object>> simple = l();
+               List<Map.Entry<BeanPropertyMeta,Object>> complex = l();
 
                m.forEachValue(checkNull, (pMeta, key, value, thrown) -> {
                        if (nn(thrown))
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlParserSession.java
index 86b76a1053..fd726d4d33 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlParserSession.java
@@ -405,7 +405,7 @@ public class XmlParserSession extends ReaderParserSession 
implements RecordReada
                                if (nn(cp) && cpf.isOneOf(MIXED, MIXED_PWS)) {
                                        if (cpcm.isCollectionOrArray()) {
                                                if (l == null)
-                                                       l = new LinkedList<>();
+                                                       l = ll();
                                                l.add(getText(r, false));
                                        } else {
                                                cp.set(m, null, getText(r, 
trim));
@@ -438,7 +438,7 @@ public class XmlParserSession extends ReaderParserSession 
implements RecordReada
                                        if (isWhitespaceElement(r) && (breg == 
null || ! breg.hasName(r.getLocalName()))) {
                                                if (cpcm.isCollectionOrArray()) 
{
                                                        if (l == null)
-                                                               l = new 
LinkedList<>();
+                                                               l = ll();
                                                        
l.add(readWhitespaceElement(r));
                                                } else {
                                                        cp.set(m, null, 
readWhitespaceElement(r));
@@ -446,7 +446,7 @@ public class XmlParserSession extends ReaderParserSession 
implements RecordReada
                                        } else {
                                                if (cpcm.isCollectionOrArray()) 
{
                                                        if (l == null)
-                                                               l = new 
LinkedList<>();
+                                                               l = ll();
                                                        
l.add(readAnything(cpcm.getElementType(), cp.getName(), r, m.getBean(false), 
false, cp));
                                                } else {
                                                        cp.set(m, null, 
readAnything(cpcm, cp.getName(), r, m.getBean(false), false, cp));
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlSerializer.java
index b45f6320e8..fad5f1c2ad 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlSerializer.java
@@ -646,7 +646,7 @@ public class XmlSerializer extends WriterSerializer 
implements XmlMetaProvider,
                autoDetectNamespaces = ! builder.disableAutoDetectNamespaces;
                defaultNamespace = nn(builder.defaultNamespace) ? 
builder.defaultNamespace : DEFAULT_JUNEAU_NAMESPACE;
                enableNamespaces = builder.enableNamespaces;
-               namespaces = u(nn(builder.namespaces) ? new 
ArrayList<>(builder.namespaces) : new ArrayList<>());
+               namespaces = u(nn(builder.namespaces) ? new 
ArrayList<>(builder.namespaces) : l());
                textNodeDelimiter = builder.textNodeDelimiter;
                addBeanTypes2 = addBeanTypesXml || super.isAddBeanTypes();
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlSerializerSession.java
index e085d63416..4e686e3ea6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/marshall/xml/XmlSerializerSession.java
@@ -253,7 +253,7 @@ public class XmlSerializerSession extends 
WriterSerializerSession implements Rec
        private final boolean enableNamespaces;
        private final XmlSerializer ctx;
        private Namespace defaultNamespace;
-       private List<Namespace> namespaces = new ArrayList<>();
+       private List<Namespace> namespaces = l();
 
        /**
         * Constructor.
@@ -271,7 +271,7 @@ public class XmlSerializerSession extends 
WriterSerializerSession implements Rec
                        builder.defaultNamespace != null ? 
Namespace.create(builder.defaultNamespace) : ctx.getDefaultNamespace()
                );
                var ctxNamespaces = ctx.getNamespaces();
-               namespaces = ctxNamespaces == null ? new ArrayList<>() : new 
ArrayList<>(ctxNamespaces);
+               namespaces = ctxNamespaces == null ? l() : new 
ArrayList<>(ctxNamespaces);
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/AbstractRestBuilder.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/AbstractRestBuilder.java
index c804a8f715..9613e6b2e5 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/AbstractRestBuilder.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/AbstractRestBuilder.java
@@ -64,7 +64,7 @@ public abstract class AbstractRestBuilder<R,SELF extends 
AbstractRestBuilder<R,S
 
        private final Class<R> resourceType;
        private final RestAnnotation.Builder anno = RestAnnotation.create();
-       private final Map<String,Object> extras = new LinkedHashMap<>();
+       private final Map<String,Object> extras = m();
        private Boolean mdcAsyncPropagation;
 
        /**
@@ -149,7 +149,7 @@ public abstract class AbstractRestBuilder<R,SELF extends 
AbstractRestBuilder<R,S
         * @return An unmodifiable view of the extras map.  Never <jk>null</jk>.
         */
        public Map<String,Object> getExtras() {
-               return Collections.unmodifiableMap(extras);
+               return u(extras);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestChildren.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestChildren.java
index 55ac045932..47dab35d5c 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestChildren.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestChildren.java
@@ -283,11 +283,11 @@ public class RestChildren {
                var initial = new LinkedHashMap<String,RestContext>();
                for (var rc : builder.list)
                        initial.put(rc.getPath(), rc);
-               this.children = Collections.unmodifiableMap(initial);
+               this.children = u(initial);
                var lazyMap = new LinkedHashMap<String,LazyChildEntry>();
                for (var e : builder.lazyList)
                        lazyMap.put(e.path, e);
-               this.lazyEntries = Collections.unmodifiableMap(lazyMap);
+               this.lazyEntries = u(lazyMap);
        }
 
        /**
@@ -502,7 +502,7 @@ public class RestChildren {
                                return null;
                        var next = new LinkedHashMap<>(children);
                        next.remove(path);
-                       children = Collections.unmodifiableMap(next);
+                       children = u(next);
                }
                destroyChild(removed);
                return removed;
@@ -529,7 +529,7 @@ public class RestChildren {
                                return null;
                        var next = new LinkedHashMap<>(children);
                        next.remove(key);
-                       children = Collections.unmodifiableMap(next);
+                       children = u(next);
                }
                destroyChild(removed);
                return removed;
@@ -609,11 +609,11 @@ public class RestChildren {
                                withoutExisting.remove(key);
                                // We don't publish the intermediate "without 
existing" snapshot — single atomic swap below.
                                withoutExisting.put(key, cc);
-                               children = 
Collections.unmodifiableMap(withoutExisting);
+                               children = u(withoutExisting);
                        } else {
                                var next = new LinkedHashMap<>(children);
                                next.put(key, cc);
-                               children = Collections.unmodifiableMap(next);
+                               children = u(next);
                        }
                }
                if (replaced != null)
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestContext.java
index c9e8fc587c..5ebaacb114 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestContext.java
@@ -2922,7 +2922,7 @@ public class RestContext extends Context {
                        return raw;
                var combined = new ArrayList<>(raw);
                combined.addAll(defaultConfigAnnotations);
-               return Collections.unmodifiableList(combined);
+               return u(combined);
        }
 
        /**
@@ -2939,7 +2939,7 @@ public class RestContext extends Context {
                var combined = new ArrayList<AnnotationInfo<Rest>>(base.size() 
+ 1);
                
combined.add(AnnotationInfo.of(ClassInfo.of(getResourceClass()), 
builderRestAnnotation));
                combined.addAll(base);
-               return Collections.unmodifiableList(combined);
+               return u(combined);
        }
 
        /**
@@ -2970,7 +2970,7 @@ public class RestContext extends Context {
        private final Memoizer<List<AnnotationInfo<Rest>>> 
restAnnotationsTopDown = memoizer(() -> {
                var list = new ArrayList<>(getRestAnnotations());
                Collections.reverse(list);
-               return Collections.unmodifiableList(list);
+               return u(list);
        });
 
        private Stream<AnnotationInfo<Rest>> 
restAnnotationsForPropertySortedByRank(String propertyName) {
@@ -3025,21 +3025,21 @@ public class RestContext extends Context {
         * default {@code "Accept,Content-Type"}.
         */
        private final Memoizer<Set<String>> allowedHeaderParams = memoizer(() ->
-               
Collections.unmodifiableSet(newCaseInsensitiveSet(mergeReplacedStringAttribute(PROPERTY_allowedHeaderParams,
 defaultAllowedHeaderParams))));
+               
u(newCaseInsensitiveSet(mergeReplacedStringAttribute(PROPERTY_allowedHeaderParams,
 defaultAllowedHeaderParams))));
 
        /**
         * HTTP method names that may be specified via a request header; 
resolved from {@code @Rest(allowedMethodHeaders)},
         * default empty.
         */
        private final Memoizer<Set<String>> allowedMethodHeaders = memoizer(() 
->
-               
Collections.unmodifiableSet(newCaseInsensitiveSet(mergeReplacedStringAttribute(PROPERTY_allowedMethodHeaders,
 defaultAllowedMethodHeaders))));
+               
u(newCaseInsensitiveSet(mergeReplacedStringAttribute(PROPERTY_allowedMethodHeaders,
 defaultAllowedMethodHeaders))));
 
        /**
         * HTTP method names that may be specified via URL query parameter; 
resolved from {@code @Rest(allowedMethodParams)},
         * default {@code "HEAD,OPTIONS"}.
         */
        private final Memoizer<Set<String>> allowedMethodParams = memoizer(() ->
-               
Collections.unmodifiableSet(newCaseInsensitiveSet(mergeReplacedStringAttribute(PROPERTY_allowedMethodParams,
 defaultAllowedMethodParams))));
+               
u(newCaseInsensitiveSet(mergeReplacedStringAttribute(PROPERTY_allowedMethodParams,
 defaultAllowedMethodParams))));
 
        /**
         * Whether a {@code &content=} URL parameter may override the request 
body; inverse of
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestRequest.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestRequest.java
index 791e2399e8..6ce197bd99 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestRequest.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/RestRequest.java
@@ -1732,7 +1732,7 @@ public class RestRequest extends 
HttpServletRequestWrapper {
         */
        public RestRequest setSerializerSessionProperty(String name, Object 
value) {
                if (serializerSessionProperties == null)
-                       serializerSessionProperties = new LinkedHashMap<>();
+                       serializerSessionProperties = m();
                serializerSessionProperties.put(name, value);
                return this;
        }
@@ -1749,7 +1749,7 @@ public class RestRequest extends 
HttpServletRequestWrapper {
         */
        public RestRequest setParserSessionProperty(String name, Object value) {
                if (parserSessionProperties == null)
-                       parserSessionProperties = new LinkedHashMap<>();
+                       parserSessionProperties = m();
                parserSessionProperties.put(name, value);
                return this;
        }
@@ -1763,7 +1763,7 @@ public class RestRequest extends 
HttpServletRequestWrapper {
        public RestRequest setSerializerSessionProperties(Map<String,Object> 
values) {
                if (ine(values)) {
                        if (serializerSessionProperties == null)
-                               serializerSessionProperties = new 
LinkedHashMap<>();
+                               serializerSessionProperties = m();
                        serializerSessionProperties.putAll(values);
                }
                return this;
@@ -1778,7 +1778,7 @@ public class RestRequest extends 
HttpServletRequestWrapper {
        public RestRequest setParserSessionProperties(Map<String,Object> 
values) {
                if (ine(values)) {
                        if (parserSessionProperties == null)
-                               parserSessionProperties = new LinkedHashMap<>();
+                               parserSessionProperties = m();
                        parserSessionProperties.putAll(values);
                }
                return this;
@@ -1885,7 +1885,7 @@ public class RestRequest extends 
HttpServletRequestWrapper {
                                        result.putAll(map);
                        }
                }
-               return result != null ? Collections.unmodifiableMap(result) : 
Collections.emptyMap();
+               return result != null ? u(result) : Collections.emptyMap();
        }
 
        private static void badRequest(String msg, Object...args) {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/auth/AuthResult.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/auth/AuthResult.java
index eba3c39230..b61cec0582 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/auth/AuthResult.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/auth/AuthResult.java
@@ -17,6 +17,7 @@
 package org.apache.juneau.rest.server.auth;
 
 import static org.apache.juneau.commons.utils.AssertionUtils.*;
+import static org.apache.juneau.commons.utils.Shorts.*;
 
 import java.security.*;
 import java.util.*;
@@ -139,7 +140,7 @@ public final class AuthResult {
 
        private AuthResult(Principal principal, Set<String> roles, MergeMode 
mode) {
                this.principal = principal;
-               this.roles = Collections.unmodifiableSet(roles);
+               this.roles = u(roles);
                this.mode = mode;
        }
 
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/auth/ClaimsPrincipal.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/auth/ClaimsPrincipal.java
index 9267be0f15..76e94554b4 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/auth/ClaimsPrincipal.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/auth/ClaimsPrincipal.java
@@ -83,7 +83,7 @@ public class ClaimsPrincipal implements Principal {
                this.name = name;
                this.claims = claims == null
                        ? Collections.emptyMap()
-                       : Collections.unmodifiableMap(new 
LinkedHashMap<>(claims));
+                       : u(cp(claims));
        }
 
        @Override /* Overridden from Principal */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/convention/VersionProvider.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/convention/VersionProvider.java
index fd4aff1b9b..75f84a0d58 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/convention/VersionProvider.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/convention/VersionProvider.java
@@ -103,7 +103,7 @@ public class VersionProvider {
        protected VersionProvider(Builder builder) {
                if (! builder.explicit)
                        
builder.fromManifest().fromGitProperties().fromJavaVersion();
-               info = Collections.unmodifiableMap(new 
LinkedHashMap<>(builder.entries));
+               info = u(cp(builder.entries));
        }
 
        /**
@@ -137,7 +137,7 @@ public class VersionProvider {
         */
        public static class Builder {
 
-               private final Map<String,String> entries = new 
LinkedHashMap<>();
+               private final Map<String,String> entries = m();
                private boolean explicit;
 
                /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/health/Health.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/health/Health.java
index 6f3eca4fa9..e4860d6402 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/health/Health.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/health/Health.java
@@ -17,6 +17,7 @@
 package org.apache.juneau.rest.server.health;
 
 import static org.apache.juneau.commons.utils.AssertionUtils.*;
+import static org.apache.juneau.commons.utils.Shorts.*;
 
 import java.util.*;
 
@@ -35,7 +36,7 @@ public final class Health {
        private Health(Builder b) {
                this.name = b.name;
                this.status = b.status;
-               this.details = Collections.unmodifiableMap(new 
LinkedHashMap<>(b.details));
+               this.details = u(cp(b.details));
                this.error = b.error;
        }
 
@@ -85,7 +86,7 @@ public final class Health {
        public static final class Builder {
                private final String name;
                private final HealthStatus status;
-               private final Map<String,Object> details = new 
LinkedHashMap<>();
+               private final Map<String,Object> details = m();
                private Throwable error;
 
                private Builder(String name, HealthStatus status, Throwable 
error) {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/openapi/BasicOpenApiProviderSession.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/openapi/BasicOpenApiProviderSession.java
index 0a0f9e3304..4e3156bdbb 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/openapi/BasicOpenApiProviderSession.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/openapi/BasicOpenApiProviderSession.java
@@ -336,7 +336,7 @@ public class BasicOpenApiProviderSession {
                if (schema.isEmpty())
                        return;
                var canonical = canonicalize(schema);
-               sites.computeIfAbsent(canonical, k -> new 
ArrayList<>()).add(new SchemaSite(parent, key));
+               sites.computeIfAbsent(canonical, k -> l()).add(new 
SchemaSite(parent, key));
        }
 
        private static String canonicalize(Object o) {
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/ops/AdminProvider.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/ops/AdminProvider.java
index 9dc641313a..c7228c1336 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/ops/AdminProvider.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/ops/AdminProvider.java
@@ -87,7 +87,7 @@ public class AdminProvider {
         * @param builder The builder. Must not be {@code null}.
         */
        protected AdminProvider(Builder builder) {
-               cacheFlushHooks = Collections.unmodifiableMap(new 
LinkedHashMap<>(builder.cacheFlushHooks));
+               cacheFlushHooks = u(cp(builder.cacheFlushHooks));
                threadNamePrefixExclude = 
List.copyOf(builder.threadNamePrefixExclude);
        }
 
@@ -274,7 +274,7 @@ public class AdminProvider {
         */
        public static class Builder {
 
-               private final Map<String,Runnable> cacheFlushHooks = new 
LinkedHashMap<>();
+               private final Map<String,Runnable> cacheFlushHooks = m();
                private final List<String> threadNamePrefixExclude = new 
ArrayList<>(DEFAULT_THREAD_NAME_PREFIX_EXCLUDE);
 
                /** Constructor &mdash; package access for {@link 
AdminProvider#create()}. */
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/ops/EchoMixin.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/ops/EchoMixin.java
index 727447242e..62937067c5 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/ops/EchoMixin.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/server/ops/EchoMixin.java
@@ -16,6 +16,7 @@
  */
 package org.apache.juneau.rest.server.ops;
 
+import static org.apache.juneau.commons.utils.Shorts.*;
 import static org.apache.juneau.commons.utils.StringUtils.*;
 
 import java.io.*;
@@ -195,7 +196,7 @@ public class EchoMixin {
                var s = new LinkedHashSet<String>();
                for (var h : builder.redactedHeaders)
                        s.add(h.toLowerCase(Locale.ROOT));
-               redactedHeadersLower = Collections.unmodifiableSet(s);
+               redactedHeadersLower = u(s);
        }
 
        /**

Reply via email to