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 dd4df23483 SonarQube bug fixes
dd4df23483 is described below

commit dd4df234835a289d4ae5e055eae34ca15645e37e
Author: James Bognar <[email protected]>
AuthorDate: Wed Feb 18 09:47:24 2026 -0500

    SonarQube bug fixes
---
 .../apache/juneau/commons/collections/Lists.java   |  3 ++
 .../apache/juneau/commons/collections/Maps.java    |  5 ++-
 .../apache/juneau/commons/collections/Sets.java    |  3 ++
 .../juneau/commons/utils/CollectionUtils.java      | 19 ++++++--
 .../apache/juneau/commons/utils/StringUtils.java   | 50 +++++++++++-----------
 .../main/java/org/apache/juneau/BeanContext.java   | 15 +++++--
 .../apache/juneau/html/HtmlSerializerSession.java  | 10 ++++-
 .../org/apache/juneau/rest/client/RestRequest.java |  2 +-
 .../org/apache/juneau/http/header/EntityTags.java  |  2 +-
 .../juneau/commons/utils/CollectionUtils_Test.java |  4 +-
 .../juneau/commons/utils/StringUtils_Test.java     | 26 +++++------
 11 files changed, 86 insertions(+), 53 deletions(-)

diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Lists.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Lists.java
index d9b37f7e30..64468ad3f7 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Lists.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Lists.java
@@ -289,6 +289,9 @@ public class Lists<E> {
         *
         * @return The built list, or {@code null} if {@link #sparse()} is set 
and the list is empty.
         */
+       @SuppressWarnings({
+               "java:S1168"     // TODO: Intentional null when sparse+empty. 
Consider Optional.
+       })
        public List<E> build() {
                if (sparse && e(list))
                        return null;
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Maps.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Maps.java
index 2b2bb27f58..0974e248eb 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Maps.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Maps.java
@@ -303,7 +303,10 @@ public class Maps<K,V> {
         *
         * @return The built map, or {@code null} if {@link #sparse()} is set 
and the map is empty.
         */
-       @SuppressWarnings("java:S3776")
+       @SuppressWarnings({
+               "java:S1168",    // TODO: Intentional null when sparse+empty. 
Consider Optional.
+               "java:S3776"     // Cognitive complexity acceptable for map 
builder
+       })
        public Map<K,V> build() {
 
                if (sparse && e(map))
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Sets.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Sets.java
index af9a1df4d2..9403f7cfc6 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Sets.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/collections/Sets.java
@@ -306,6 +306,9 @@ public class Sets<E> {
         *
         * @return The built set, or {@code null} if {@link #sparse()} is set 
and the set is empty.
         */
+       @SuppressWarnings({
+               "java:S1168"     // TODO: Intentional null when sparse+empty. 
Consider Optional.
+       })
        public Set<E> build() {
                if (sparse && e(set))
                        return null;
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
index a4db36f0ea..f8db492c72 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/CollectionUtils.java
@@ -523,7 +523,7 @@ public class CollectionUtils {
         *
         * @param <E> The element type.
         * @param arrays Collection of arrays to combine.
-        * @return A new combined array, or <jk>null</jk> if all arrays are 
<jk>null</jk>.
+        * @return A new combined array, or an empty array if all arrays are 
<jk>null</jk>.
         */
        @SuppressWarnings({
                "unchecked" // Type erasure requires unchecked casts
@@ -538,7 +538,7 @@ public class CollectionUtils {
                        l += (a == null ? 0 : a.length);
                }
                if (a1 == null)
-                       return null;
+                       return (E[]) new Object[0];
                var a = 
(E[])Array.newInstance(a1.getClass().getComponentType(), l);
                int i = 0;
                for (var aa : arrays)
@@ -1118,12 +1118,15 @@ public class CollectionUtils {
        /**
         * Returns a null list.
         *
+        * <p>TODO: SonarLint java:S1168 - Intentional null return for 
assertion testing. Consider Optional.
+        *
         * @param <T> The element type.
         * @param type The element type class.
         * @return <jk>null</jk>.
         */
        @SuppressWarnings({
-               "java:S1172" // Parameter type is used for type inference, not 
runtime behavior
+               "java:S1168",    // TODO: Intentional null return for assertion 
testing. Consider Optional.
+               "java:S1172"     // Parameter type is used for type inference, 
not runtime behavior
        })
        public static <T> List<T> listn(Class<T> type) {
                return null;
@@ -1880,12 +1883,17 @@ public class CollectionUtils {
        /**
         * Returns a null map.
         *
+        * <p>TODO: SonarLint java:S1168 - Intentional null return for 
assertion testing. Consider Optional.
+        *
         * @param <K> The key type.
         * @param <V> The value type.
         * @param keyType The key type class.
         * @param valueType The value type class.
         * @return <jk>null</jk>.
         */
+       @SuppressWarnings({
+               "java:S1168"     // TODO: Intentional null return for assertion 
testing. Consider Optional.
+       })
        public static <K,V> Map<K,V> mapn(Class<K> keyType, Class<V> valueType) 
{
                return null;
        }
@@ -1906,12 +1914,15 @@ public class CollectionUtils {
        /**
         * Returns <jk>null</jk> for the specified array type.
         *
+        * <p>TODO: SonarLint java:S1168 - Intentional null return for 
assertion testing. Consider Optional.
+        *
         * @param <T> The component type.
         * @param type The component type class.
         * @return <jk>null</jk>.
         */
        @SuppressWarnings({
-               "java:S1172" // Parameter type is used for type inference, not 
runtime behavior
+               "java:S1168",    // TODO: Intentional null return for assertion 
testing. Consider Optional.
+               "java:S1172"     // Parameter type is used for type inference, 
not runtime behavior
        })
        public static <T> T[] na(Class<T> type) {
                return null;
diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
index a19ff475e4..10aeeb25c0 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/utils/StringUtils.java
@@ -336,11 +336,11 @@ public class StringUtils {
         * BASE64-decodes the specified string.
         *
         * @param in The BASE-64 encoded string.
-        * @return The decoded byte array, or null if the input was 
<jk>null</jk>.
+        * @return The decoded byte array, or an empty array if the input was 
<jk>null</jk>.
         */
        public static byte[] base64Decode(String in) {
                if (in == null)
-                       return null;
+                       return new byte[0];
 
                var bIn = in.getBytes(UTF8);
 
@@ -380,12 +380,10 @@ public class StringUtils {
         * Shortcut for calling <c>base64Decode(String)</c> and converting the 
result to a UTF-8 encoded string.
         *
         * @param in The BASE-64 encoded string to decode.
-        * @return The decoded string.
+        * @return The decoded string, or an empty string if the input was 
<jk>null</jk>.
         */
        public static String base64DecodeToString(String in) {
                var b = base64Decode(in);
-               if (b == null)
-                       return null;
                return new String(b, UTF8);
        }
 
@@ -1220,11 +1218,11 @@ public class StringUtils {
         * </p>
         *
         * @param array The array to process. Can be <jk>null</jk>.
-        * @return A new array with duplicate elements removed, or 
<jk>null</jk> if the array was <jk>null</jk>.
+        * @return A new array with duplicate elements removed, or an empty 
array if the array was <jk>null</jk>.
         */
        public static String[] distinct(String[] array) {
                if (array == null)
-                       return null;
+                       return new String[0];
                return 
Arrays.stream(array).collect(Collectors.toCollection(LinkedHashSet::new)).toArray(new
 String[0]);
        }
 
@@ -1242,11 +1240,11 @@ public class StringUtils {
         * </p>
         *
         * @param str The string to generate a Double Metaphone code for. Can 
be <jk>null</jk>.
-        * @return An array with two elements: [primary code, alternate code]. 
Returns <jk>null</jk> if input is <jk>null</jk> or empty.
+        * @return An array with two elements: [primary code, alternate code]. 
Returns an empty array if input is <jk>null</jk> or empty.
         */
        public static String[] doubleMetaphone(String str) {
                if (isEmpty(str))
-                       return null;
+                       return new String[0];
 
                // For simplicity, return the same code for both primary and 
alternate
                // A full Double Metaphone implementation would be much more 
complex
@@ -1906,11 +1904,11 @@ public class StringUtils {
         *
         * @param array The array to filter. Can be <jk>null</jk>.
         * @param predicate The predicate to apply to each element. Can be 
<jk>null</jk>.
-        * @return A new array containing only the elements that match the 
predicate, or <jk>null</jk> if the array was <jk>null</jk>.
+        * @return A new array containing only the elements that match the 
predicate, or an empty array if the array was <jk>null</jk>.
         */
        public static String[] filter(String[] array, Predicate<String> 
predicate) {
                if (array == null)
-                       return null;
+                       return new String[0];
                if (predicate == null)
                        return new String[0];
                return 
Arrays.stream(array).filter(predicate).toArray(String[]::new);
@@ -4325,11 +4323,11 @@ public class StringUtils {
         *
         * @param array The array to map. Can be <jk>null</jk>.
         * @param mapper The function to apply to each element. Can be 
<jk>null</jk>.
-        * @return A new array with the mapped elements, or <jk>null</jk> if 
the array was <jk>null</jk>.
+        * @return A new array with the mapped elements, or an empty array if 
the array was <jk>null</jk>.
         */
        public static String[] mapped(String[] array, Function<String,String> 
mapper) {
                if (array == null)
-                       return null;
+                       return new String[0];
                if (mapper == null)
                        return Arrays.copyOf(array, array.length);
                return Arrays.stream(array).map(mapper).toArray(String[]::new);
@@ -6179,11 +6177,11 @@ public class StringUtils {
         * </p>
         *
         * @param array The array to sort. Can be <jk>null</jk>.
-        * @return A new sorted array, or <jk>null</jk> if the array was 
<jk>null</jk>.
+        * @return A new sorted array, or an empty array if the array was 
<jk>null</jk>.
         */
        public static String[] sort(String[] array) {
                if (array == null)
-                       return null;
+                       return new String[0];
                var result = Arrays.copyOf(array, array.length);
                Arrays.sort(result);
                return result;
@@ -6205,11 +6203,11 @@ public class StringUtils {
         * </p>
         *
         * @param array The array to sort. Can be <jk>null</jk>.
-        * @return A new sorted array (case-insensitive), or <jk>null</jk> if 
the array was <jk>null</jk>.
+        * @return A new sorted array (case-insensitive), or an empty array if 
the array was <jk>null</jk>.
         */
        public static String[] sortIgnoreCase(String[] array) {
                if (array == null)
-                       return null;
+                       return new String[0];
                var result = Arrays.copyOf(array, array.length);
                Arrays.sort(result, String.CASE_INSENSITIVE_ORDER);
                return result;
@@ -6478,15 +6476,15 @@ public class StringUtils {
         *
         * @param s The string to split.
         * @param trim Trim strings after parsing.
-        * @return The parsed map, or null if the string was null.
+        * @return The parsed map, or an empty map if the string was null.
         */
        @SuppressWarnings({
-               "java:S3776" // Cognitive complexity acceptable for map 
splitting logic
+               "java:S3776"     // Cognitive complexity acceptable for map 
splitting logic
        })
        public static Map<String,String> splitMap(String s, boolean trim) {
 
                if (s == null)
-                       return null;
+                       return mape();
                if (isEmpty(s))
                        return mape();
 
@@ -6552,7 +6550,7 @@ public class StringUtils {
        public static String[] splitMethodArgs(String s) {
 
                if (s == null)
-                       return null;
+                       return new String[0];
                if (isEmpty(s))
                        return new String[0];
                if (s.indexOf(',') == -1)
@@ -6739,13 +6737,13 @@ public class StringUtils {
         *      <br>An empty string results in an empty array.
         */
        @SuppressWarnings({
-               "java:S3776", // Cognitive complexity acceptable for quoted 
string splitting
-               "java:S2583" // State variables persist across loop iterations
+               "java:S3776",    // Cognitive complexity acceptable for quoted 
string splitting
+               "java:S2583"     // State variables persist across loop 
iterations
        })
        public static String[] splitQuoted(String s, boolean keepQuotes) {
 
                if (s == null)
-                       return null;
+                       return new String[0];
 
                s = s.trim();
 
@@ -7266,11 +7264,11 @@ public class StringUtils {
         * Returns an empty array if the collection is empty.
         *
         * @param collection The collection to convert. Can be <jk>null</jk>.
-        * @return A new string array containing the collection elements, or 
<jk>null</jk> if the collection was <jk>null</jk>.
+        * @return A new string array containing the collection elements, or an 
empty array if the collection was <jk>null</jk>.
         */
        public static String[] toStringArray(Collection<String> collection) {
                if (collection == null)
-                       return null;
+                       return new String[0];
                return collection.toArray(new String[collection.size()]);
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 0a2bf284cb..e47032e55e 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -4423,6 +4423,13 @@ public class BeanContext extends Context {
                return cmString;
        }
 
+       /**
+        * Finds the type parameters for a parameterized type.
+        *
+        * @param o The generic type.
+        * @param c The raw class.
+        * @return The array of {@link ClassMeta} for each type parameter, or 
an empty array if parameters cannot be resolved.
+        */
        @SuppressWarnings("java:S3776")
        final ClassMeta[] findParameters(Type o, Class c) {
                if (o == null)
@@ -4447,15 +4454,15 @@ public class BeanContext extends Context {
                        var l = new LinkedList<ClassMeta<?>>();
                        for (var pt2 : o2.getActualTypeArguments()) {
                                if (pt2 instanceof WildcardType || pt2 
instanceof TypeVariable)
-                                       return null;
+                                       return new ClassMeta[0];
                                l.add(resolveClassMeta(pt2, null));
                        }
                        if (l.isEmpty())
-                               return null;
+                               return new ClassMeta[0];
                        return l.toArray(new ClassMeta[l.size()]);
                }
 
-               return null;
+               return new ClassMeta[0];
        }
 
        @SuppressWarnings("java:S3776")
@@ -4495,7 +4502,7 @@ public class BeanContext extends Context {
                // then we need to figure out the parameters.
                if (rawType.isMap() || rawType.isCollection() || 
rawType.isOptional()) {
                        var params = findParameters(o, c);
-                       if (params == null)
+                       if (params.length == 0)
                                return rawType;
                        if (rawType.isMap()) {
                                if (params.length != 2 || (params[0].isObject() 
&& params[1].isObject()))
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
index c459329817..cc4235cf10 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
@@ -335,8 +335,16 @@ public class HtmlSerializerSession extends 
XmlSerializerSession {
         * Returns null if collection should not be serialized as a 
2-dimensional table.
         * Returns an empty array if it should be treated as a table but 
without headers.
         * 2-dimensional tables are used for collections of objects that all 
have the same set of property names.
+        *
+        * TODO: SonarLint java:S1168 - null vs empty array have distinct 
semantics here (don't use table vs table with no headers).
+        * Consider Optional or separate method to avoid null return.
         */
-       @SuppressWarnings({ "rawtypes", "unchecked", "java:S3776" })
+       @SuppressWarnings({
+               "rawtypes",       // Collection uses raw type for mixed 
beans/maps
+               "unchecked",      // Type erasure in generic collection handling
+               "java:S1168",     // TODO: null vs empty array have distinct 
semantics (don't use table vs table with no headers)
+               "java:S3776"      // Cognitive complexity acceptable for table 
header resolution
+       })
        private Object[] getTableHeaders(Collection c, HtmlBeanPropertyMeta 
bpHtml) throws SerializeException {
 
                if (c.isEmpty())
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
index 95899a54ac..8d1edb104c 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
@@ -132,7 +132,7 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
                }
 
                @Override
-               public HeaderElement[] getElements() throws ParseException { 
return null; }
+               public HeaderElement[] getElements() throws ParseException { 
return new HeaderElement[0]; }
        }
 
        private class SimplePart implements NameValuePair {
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/EntityTags.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/EntityTags.java
index e8976dd62a..c10e362516 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/EntityTags.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/EntityTags.java
@@ -108,7 +108,7 @@ public class EntityTags {
 
        private static EntityTag[] parse(String value) {
                if (value == null)
-                       return null;
+                       return new EntityTag[0];
                var s = splita(value);
                var v = new EntityTag[s.length];
                for (var i = 0; i < s.length; i++)
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/commons/utils/CollectionUtils_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/commons/utils/CollectionUtils_Test.java
index b4efca5a43..539b883da9 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/commons/utils/CollectionUtils_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/commons/utils/CollectionUtils_Test.java
@@ -331,8 +331,8 @@ class CollectionUtils_Test extends TestBase {
                assertList(combine(s2), "b");
                assertList(combine(s1, null), "a");
                assertList(combine(null, s2), "b");
-               assertNull(combine(null, null));
-               assertNull(combine());
+               assertEmpty(combine(null, null));
+               assertEmpty(combine());
        }
 
        
//====================================================================================================
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/commons/utils/StringUtils_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/commons/utils/StringUtils_Test.java
index d46017b3de..318a9e4160 100755
--- 
a/juneau-utest/src/test/java/org/apache/juneau/commons/utils/StringUtils_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/commons/utils/StringUtils_Test.java
@@ -258,7 +258,7 @@ class StringUtils_Test extends TestBase {
        
//====================================================================================================
        @Test
        void a007_base64Decode() {
-               assertNull(base64Decode(null));
+               assertArrayEquals(new byte[] {}, base64Decode(null));
                assertArrayEquals(new byte[] {}, base64Decode(""));
                assertArrayEquals("Hello".getBytes(UTF8), 
base64Decode("SGVsbG8="));
                assertArrayEquals("Hello World".getBytes(UTF8), 
base64Decode("SGVsbG8gV29ybGQ="));
@@ -282,7 +282,7 @@ class StringUtils_Test extends TestBase {
        
//====================================================================================================
        @Test
        void a008_base64DecodeToString() {
-               assertNull(base64DecodeToString(null));
+               assertEquals("", base64DecodeToString(null));
                assertEquals("", base64DecodeToString(""));
                assertEquals("Hello", base64DecodeToString("SGVsbG8="));
                assertEquals("Hello World", 
base64DecodeToString("SGVsbG8gV29ybGQ="));
@@ -819,7 +819,7 @@ class StringUtils_Test extends TestBase {
        
//====================================================================================================
        @Test
        void a032_distinct() {
-               assertNull(distinct(null));
+               assertList(distinct(null));
                assertList(distinct(a()));
                assertList(distinct(a("foo", "bar", "baz")), "foo", "bar", 
"baz");
                assertList(distinct(a("foo", "bar", "foo", "baz", "bar")), 
"foo", "bar", "baz");
@@ -846,8 +846,8 @@ class StringUtils_Test extends TestBase {
                assertEquals(2, codes2.length);
 
                // Null/empty input
-               assertNull(doubleMetaphone(null));
-               assertNull(doubleMetaphone(""));
+               assertList(doubleMetaphone(null));
+               assertList(doubleMetaphone(""));
 
                // Test with numbers-only string - metaphone returns "" (empty 
string), not null
                // So doubleMetaphone should return a valid array with empty 
strings
@@ -1338,7 +1338,7 @@ class StringUtils_Test extends TestBase {
        
//====================================================================================================
        @Test
        void a052_filter() {
-               assertNull(filter(null, NOT_EMPTY));
+               assertList(filter(null, NOT_EMPTY));
                assertList(filter(a(), NOT_EMPTY));
                assertList(filter(a("foo", "", "bar", null, "baz"), NOT_EMPTY), 
"foo", "bar", "baz");
                assertList(filter(a("foo", "", "bar", null, "baz"), null));
@@ -3677,7 +3677,7 @@ class StringUtils_Test extends TestBase {
        
//====================================================================================================
        @Test
        void a123_mapped() {
-               assertNull(mapped(null, String::toUpperCase));
+               assertList(mapped(null, String::toUpperCase));
                assertList(mapped(a(), String::toUpperCase));
                assertList(mapped(a("foo", "bar", "baz"), String::toUpperCase), 
"FOO", "BAR", "BAZ");
                assertList(mapped(a("FOO", "BAR", "BAZ"), String::toLowerCase), 
"foo", "bar", "baz");
@@ -5316,7 +5316,7 @@ class StringUtils_Test extends TestBase {
        
//====================================================================================================
        @Test
        void a181_sort() {
-               assertNull(sort(null));
+               assertList(sort(null));
                assertList(sort(a()));
                assertList(sort(a("c", "a", "b")), "a", "b", "c");
                assertList(sort(a("zebra", "apple", "banana")), "apple", 
"banana", "zebra");
@@ -5331,7 +5331,7 @@ class StringUtils_Test extends TestBase {
        
//====================================================================================================
        @Test
        void a182_sortIgnoreCase() {
-               assertNull(sortIgnoreCase(null));
+               assertList(sortIgnoreCase(null));
                assertList(sortIgnoreCase(a()));
                assertList(sortIgnoreCase(a("c", "a", "b")), "a", "b", "c");
                assertList(sortIgnoreCase(a("Zebra", "apple", "Banana")), 
"apple", "Banana", "Zebra");
@@ -5598,7 +5598,7 @@ class StringUtils_Test extends TestBase {
                assertString("{a\\=1}", splitMap("a\\\\=1", true));
 
                // Test code path
-               assertNull(splitMap(null, true));
+               assertTrue(splitMap(null, true).isEmpty());
 
                // Test code path
                assertTrue(splitMap("", true).isEmpty());
@@ -5644,7 +5644,7 @@ class StringUtils_Test extends TestBase {
                assertEquals("z", args3[2]);
 
                // Null/empty input
-               assertNull(splitMethodArgs(null));
+               assertList(splitMethodArgs(null));
                assertArrayEquals(new String[0], splitMethodArgs(""));
        }
 
@@ -5768,7 +5768,7 @@ class StringUtils_Test extends TestBase {
        
//====================================================================================================
        @Test
        void a190_splitQuoted() {
-               assertNull(splitQuoted(null));
+               assertList(splitQuoted(null));
                assertEmpty(splitQuoted(""));
                assertEmpty(splitQuoted(" \t "));
                assertList(splitQuoted("foo"), "foo");
@@ -6270,7 +6270,7 @@ class StringUtils_Test extends TestBase {
        
//====================================================================================================
        @Test
        void a210_toStringArray() {
-               assertNull(toStringArray(null));
+               assertList(toStringArray(null));
                assertList(toStringArray(Collections.emptyList()));
                assertList(toStringArray(List.of("a", "b", "c")), "a", "b", 
"c");
 

Reply via email to