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 — 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);
}
/**