This is an automated email from the ASF dual-hosted git repository.

mattsicker pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 47e78fcf3eebe11860cf3e9f48bf6c8691efffb5
Author: Matt Sicker <[email protected]>
AuthorDate: Sun Oct 1 18:19:06 2023 -0500

    Clean up various warnings
    
    Signed-off-by: Matt Sicker <[email protected]>
---
 .../java/org/apache/logging/log4j/BridgeAware.java |  5 ++--
 .../log4j/internal/CopyOnWriteNavigableSet.java    |  1 +
 .../logging/log4j/internal/DefaultLogBuilder.java  |  4 +++
 .../logging/log4j/message/FormattedMessage.java    | 16 +++++------
 .../logging/log4j/message/LocalizedMessage.java    |  2 +-
 .../apache/logging/log4j/message/MapMessage.java   | 15 ++++------
 .../log4j/message/ParameterizedMessage.java        |  6 ++--
 .../logging/log4j/message/SimpleMessage.java       | 16 ++++-------
 .../log4j/message/StringFormattedMessage.java      |  7 ++---
 .../log4j/message/StructuredDataMessage.java       | 29 ++++---------------
 .../logging/log4j/message/ThreadDumpMessage.java   |  2 +-
 .../apache/logging/log4j/spi/AbstractLogger.java   |  1 +
 .../logging/log4j/spi/LoggingSystemProperty.java   |  2 ++
 .../org/apache/logging/log4j/spi/Provider.java     | 33 ++++++----------------
 .../org/apache/logging/log4j/util/BiConsumer.java  |  1 +
 .../apache/logging/log4j/util/PropertiesUtil.java  | 16 ++++-------
 .../org/apache/logging/log4j/util/PropertyKey.java |  1 +
 .../apache/logging/log4j/util/PropertySource.java  | 14 ++++-----
 .../logging/log4j/util/SortedArrayStringMap.java   |  2 +-
 19 files changed, 65 insertions(+), 108 deletions(-)

diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/BridgeAware.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/BridgeAware.java
index ffb7412a81..86b7c00d7e 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/BridgeAware.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/BridgeAware.java
@@ -27,8 +27,7 @@ public interface BridgeAware {
      * Fully qualified class name of the entry point to the logging system. 
This
      * class will not appear in the location information.
      *
-     * @param fqcn
-     * @return this
+     * @param fqcn fully qualified class name of logging system entry point
      */
-    public void setEntryPoint(final String fqcn);
+    void setEntryPoint(final String fqcn);
 }
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/internal/CopyOnWriteNavigableSet.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/internal/CopyOnWriteNavigableSet.java
index 63b0f21f2c..379e440125 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/internal/CopyOnWriteNavigableSet.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/internal/CopyOnWriteNavigableSet.java
@@ -29,6 +29,7 @@ import java.util.function.Predicate;
 import java.util.stream.Stream;
 
 public class CopyOnWriteNavigableSet<E> extends TreeSet<E> {
+    private static final long serialVersionUID = 1L;
 
     private volatile NavigableSet<E> set;
     private final Comparator<? super E> comparator;
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/internal/DefaultLogBuilder.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/internal/DefaultLogBuilder.java
index 149bd010bf..f11b917614 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/internal/DefaultLogBuilder.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/internal/DefaultLogBuilder.java
@@ -81,21 +81,25 @@ public class DefaultLogBuilder implements BridgeAware, 
LogBuilder {
         return this;
     }
 
+    @Override
     public LogBuilder withMarker(final Marker marker) {
         this.marker = marker;
         return this;
     }
 
+    @Override
     public LogBuilder withThrowable(final Throwable throwable) {
         this.throwable = throwable;
         return this;
     }
 
+    @Override
     public LogBuilder withLocation() {
         location = StackLocatorUtil.getStackTraceElement(2);
         return this;
     }
 
+    @Override
     public LogBuilder withLocation(final StackTraceElement location) {
         this.location = location;
         return this;
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessage.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessage.java
index c83f572bdc..a63b2c3605 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessage.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessage.java
@@ -130,14 +130,6 @@ public class FormattedMessage implements Message {
         this.throwable = throwable;
     }
 
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        final FormattedMessage that = (FormattedMessage) o;
-        return Objects.equals(messagePattern, that.messagePattern) && 
Arrays.equals(argArray, that.argArray);
-    }
-
     /**
      * Gets the message pattern.
      * @return the message pattern.
@@ -202,6 +194,14 @@ public class FormattedMessage implements Message {
         return message.getThrowable();
     }
 
+    @Override
+    public boolean equals(final Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        final FormattedMessage that = (FormattedMessage) o;
+        return Objects.equals(messagePattern, that.messagePattern) && 
Arrays.equals(argArray, that.argArray);
+    }
+
     @Override
     public int hashCode() {
         int result = Objects.hash(messagePattern);
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/LocalizedMessage.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/LocalizedMessage.java
index e8be9ad952..92248931fc 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/LocalizedMessage.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/LocalizedMessage.java
@@ -45,7 +45,7 @@ public class LocalizedMessage implements Message, 
LoggerNameAwareMessage {
     private final String key;
     private final Object[] argArray;
     private String formattedMessage;
-    private transient Throwable throwable;
+    private Throwable throwable;
 
     /**
      * Constructor with message pattern and arguments.
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java
index 5ebf022cc8..31cdeecd46 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java
@@ -19,6 +19,7 @@ package org.apache.logging.log4j.message;
 import java.util.AbstractMap;
 import java.util.Collections;
 import java.util.Map;
+import java.util.Objects;
 import java.util.TreeMap;
 
 import org.apache.logging.log4j.util.BiConsumer;
@@ -477,21 +478,15 @@ public class MapMessage<M extends MapMessage<M, V>, V> 
implements MultiFormatStr
 
     @Override
     public boolean equals(final Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (o == null || this.getClass() != o.getClass()) {
-            return false;
-        }
-
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
         final MapMessage<?, ?> that = (MapMessage<?, ?>) o;
-
-        return this.data.equals(that.data);
+        return Objects.equals(data, that.data);
     }
 
     @Override
     public int hashCode() {
-        return data.hashCode();
+        return Objects.hash(data);
     }
 
     /**
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
index 7e65bb48cc..4d11b59732 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
@@ -65,8 +65,6 @@ public class ParameterizedMessage implements Message, 
StringBuilderFormattable {
      */
     public static final String ERROR_SUFFIX = ParameterFormatter.ERROR_SUFFIX;
 
-    private static final int HASHVAL = 31;
-
     // storing JDK classes in ThreadLocals does not cause memory leaks in web 
apps, so this is okay
     private static final ThreadLocal<StringBuilder> threadLocalStringBuilder = 
new ThreadLocal<>();
 
@@ -74,7 +72,7 @@ public class ParameterizedMessage implements Message, 
StringBuilderFormattable {
     private final Object[] argArray;
 
     private String formattedMessage;
-    private transient Throwable throwable;
+    private Throwable throwable;
     private int[] indices;
     private int usedCount;
 
@@ -236,7 +234,7 @@ public class ParameterizedMessage implements Message, 
StringBuilderFormattable {
     @Override
     public int hashCode() {
         int result = Objects.hash(messagePattern);
-        result = HASHVAL * result + Arrays.hashCode(argArray);
+        result = 31 * result + Arrays.hashCode(argArray);
         return result;
     }
 
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java
index 8f4ea06c4f..94075aa872 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.message;
 
+import java.util.Objects;
+
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 
 /**
@@ -85,21 +87,15 @@ public class SimpleMessage implements Message, 
StringBuilderFormattable, CharSeq
 
     @Override
     public boolean equals(final Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (o == null || getClass() != o.getClass()) {
-            return false;
-        }
-
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
         final SimpleMessage that = (SimpleMessage) o;
-
-        return !(charSequence != null ? 
!charSequence.equals(that.charSequence) : that.charSequence != null);
+        return Objects.equals(getFormattedMessage(), 
that.getFormattedMessage());
     }
 
     @Override
     public int hashCode() {
-        return charSequence != null ? charSequence.hashCode() : 0;
+        return Objects.hash(getFormattedMessage());
     }
 
     @Override
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/StringFormattedMessage.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/StringFormattedMessage.java
index 9ad05c3d6a..995726286b 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/StringFormattedMessage.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/StringFormattedMessage.java
@@ -38,8 +38,6 @@ public class StringFormattedMessage implements Message {
 
     private static final Logger LOGGER = StatusLogger.getLogger();
 
-    private static final int HASHVAL = 31;
-
     private final String messagePattern;
     private final Object[] argArray;
     private String formattedMessage;
@@ -127,12 +125,11 @@ public class StringFormattedMessage implements Message {
 
     @Override
     public int hashCode() {
-        int result = messagePattern != null ? messagePattern.hashCode() : 0;
-        result = HASHVAL * result + (argArray != null ? 
Arrays.hashCode(argArray) : 0);
+        int result = Objects.hash(messagePattern);
+        result = 31 * result + Arrays.hashCode(argArray);
         return result;
     }
 
-
     @Override
     public String toString() {
         return getFormattedMessage();
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataMessage.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataMessage.java
index 7e7a251038..60ad5404ff 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataMessage.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataMessage.java
@@ -17,6 +17,7 @@
 package org.apache.logging.log4j.message;
 
 import java.util.Map;
+import java.util.Objects;
 
 import org.apache.logging.log4j.util.EnglishEnums;
 import org.apache.logging.log4j.util.StringBuilders;
@@ -412,34 +413,16 @@ public class StructuredDataMessage extends 
MapMessage<StructuredDataMessage, Str
 
     @Override
     public boolean equals(final Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (o == null || getClass() != o.getClass()) {
-            return false;
-        }
-
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        if (!super.equals(o)) return false;
         final StructuredDataMessage that = (StructuredDataMessage) o;
-
-        if (!super.equals(o)) {
-            return false;
-        }
-        if (type != null ? !type.equals(that.type) : that.type != null) {
-            return false;
-        }
-        if (id != null ? !id.equals(that.id) : that.id != null) {
-            return false;
-        }
-        return message != null ? message.equals(that.message) : that.message 
== null;
+        return Objects.equals(id, that.id) && Objects.equals(message, 
that.message) && Objects.equals(type, that.type);
     }
 
     @Override
     public int hashCode() {
-        int result = super.hashCode();
-        result = HASHVAL * result + (type != null ? type.hashCode() : 0);
-        result = HASHVAL * result + (id != null ? id.hashCode() : 0);
-        result = HASHVAL * result + (message != null ? message.hashCode() : 0);
-        return result;
+        return Objects.hash(super.hashCode(), id, message, type);
     }
 
     @Override
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
index 04f020a473..32a31965e9 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
@@ -67,7 +67,7 @@ public class ThreadDumpMessage implements Message, 
StringBuilderFormattable {
     @Override
     public void formatTo(final StringBuilder sb) {
         sb.append(title);
-        if (title.length() > 0) {
+        if (!title.isEmpty()) {
             sb.append('\n');
         }
         for (final Map.Entry<ThreadInformation, StackTraceElement[]> entry : 
threads.entrySet()) {
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java
index 68cb9f8ca8..7f270f3b64 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java
@@ -1932,6 +1932,7 @@ public abstract class AbstractLogger implements 
ExtendedLogger {
         logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());
     }
 
+    @Override
     public void logMessage(final Level level, final Marker marker, final 
String fqcn, final StackTraceElement location,
             final Message message, final Throwable throwable) {
         try {
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggingSystemProperty.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggingSystemProperty.java
index d5b8615330..3bd60133cf 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggingSystemProperty.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggingSystemProperty.java
@@ -218,10 +218,12 @@ public enum LoggingSystemProperty implements PropertyKey {
         return null;
     }
 
+    @Override
     public String getComponent() {
         return component.getName();
     }
 
+    @Override
     public String getName() {
         return name;
     }
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/Provider.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/Provider.java
index 39c5ad78fb..ad7db2f784 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/Provider.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/Provider.java
@@ -18,6 +18,7 @@ package org.apache.logging.log4j.spi;
 
 import java.lang.ref.WeakReference;
 import java.net.URL;
+import java.util.Objects;
 import java.util.Properties;
 
 import org.apache.logging.log4j.Logger;
@@ -42,7 +43,7 @@ public class Provider {
      */
     public static final String LOGGER_CONTEXT_FACTORY = "LoggerContextFactory";
 
-    private static final Integer DEFAULT_PRIORITY = Integer.valueOf(-1);
+    private static final Integer DEFAULT_PRIORITY = -1;
     private static final Logger LOGGER = StatusLogger.getLogger();
 
     private final Integer priority;
@@ -221,33 +222,17 @@ public class Provider {
 
     @Override
     public boolean equals(final Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (o == null || getClass() != o.getClass()) {
-            return false;
-        }
-
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
         final Provider provider = (Provider) o;
-
-        if (priority != null ? !priority.equals(provider.priority) : 
provider.priority != null) {
-            return false;
-        }
-        if (className != null ? !className.equals(provider.className) : 
provider.className != null) {
-            return false;
-        }
-        if (loggerContextFactoryClass != null ? 
!loggerContextFactoryClass.equals(provider.loggerContextFactoryClass) : 
provider.loggerContextFactoryClass != null) {
-            return false;
-        }
-        return versions != null ? versions.equals(provider.versions) : 
provider.versions == null;
+        return Objects.equals(priority, provider.priority) &&
+                Objects.equals(className, provider.className) &&
+                Objects.equals(loggerContextFactoryClass, 
provider.loggerContextFactoryClass) &&
+                Objects.equals(versions, provider.versions);
     }
 
     @Override
     public int hashCode() {
-        int result = priority != null ? priority.hashCode() : 0;
-        result = 31 * result + (className != null ? className.hashCode() : 0);
-        result = 31 * result + (loggerContextFactoryClass != null ? 
loggerContextFactoryClass.hashCode() : 0);
-        result = 31 * result + (versions != null ? versions.hashCode() : 0);
-        return result;
+        return Objects.hash(priority, className, loggerContextFactoryClass, 
versions);
     }
 }
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/util/BiConsumer.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/BiConsumer.java
index fff04b3931..9987a09808 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/BiConsumer.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/BiConsumer.java
@@ -31,5 +31,6 @@ public interface BiConsumer<K, V> extends 
java.util.function.BiConsumer<K, V> {
      * @param k the first input argument
      * @param v the second input argument
      */
+    @Override
     void accept(K k, V v);
 }
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java
index 58077430f4..395f8c049f 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesUtil.java
@@ -97,7 +97,7 @@ public class PropertiesUtil implements PropertyEnvironment {
      * @param propertiesFileName the location of properties file to load
      */
     public PropertiesUtil(final String propertiesFileName) {
-        this(PropertySource.SYSTEM_CONTEXT, propertiesFileName, true);
+        this(PropertySource.SYSTEM_CONTEXT, propertiesFileName);
     }
     /**
      * Constructs a PropertiesUtil for a given properties file name on the 
classpath. The properties specified in this
@@ -106,10 +106,6 @@ public class PropertiesUtil implements PropertyEnvironment 
{
      * @param propertiesFileName the location of properties file to load
      */
     public PropertiesUtil(final String contextName, final String 
propertiesFileName) {
-        this(contextName, propertiesFileName, true);
-    }
-
-    private PropertiesUtil(final String contextName, final String 
propertiesFileName, final boolean useTccl) {
         final List<PropertySource> sources = new ArrayList<>();
         if (propertiesFileName.endsWith(".json") || 
propertiesFileName.endsWith(".jsn")) {
             final PropertySource source = 
getJsonPropertySource(propertiesFileName, 50);
@@ -117,15 +113,15 @@ public class PropertiesUtil implements 
PropertyEnvironment {
                 sources.add(source);
             }
         } else {
-            final PropertySource source = new 
PropertiesPropertySource(PropertyFilePropertySource.loadPropertiesFile(propertiesFileName),
-                null, 60, true);
+            final Properties properties = 
PropertyFilePropertySource.loadPropertiesFile(propertiesFileName);
+            final PropertySource source = new 
PropertiesPropertySource(properties, null, 60, true);
             sources.add(source);
         }
         this.environment = new Environment(contextName, sources);
     }
 
     private PropertiesUtil() {
-        this.environment = getEnvironment(LOG4J_NAMESPACE, true);
+        this.environment = getEnvironment(LOG4J_NAMESPACE);
     }
 
     /**
@@ -167,10 +163,10 @@ public class PropertiesUtil implements 
PropertyEnvironment {
     }
 
     public static PropertyEnvironment getProperties(final String namespace) {
-        return getEnvironment(namespace, true);
+        return getEnvironment(namespace);
     }
 
-    private static Environment getEnvironment(final String namespace, final 
boolean useTccl) {
+    private static Environment getEnvironment(final String namespace) {
         final List<PropertySource> sources = new ArrayList<>();
         final String fileName = String.format("log4j2.%s.properties", 
namespace);
         final Properties properties = 
PropertyFilePropertySource.loadPropertiesFile(fileName);
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertyKey.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertyKey.java
index 13211f2201..9896de5eea 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertyKey.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertyKey.java
@@ -30,5 +30,6 @@ public interface PropertyKey {
         return "log4j2.*." + getKey();
     }
 
+    @Override
     String toString();
 }
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertySource.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertySource.java
index 0cb1e326ae..6af0c05122 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertySource.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertySource.java
@@ -19,7 +19,6 @@ package org.apache.logging.log4j.util;
 import java.io.InputStream;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Enumeration;
@@ -29,8 +28,6 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 
-
-
 /**
  * A source for global configuration properties.
  *
@@ -128,7 +125,7 @@ public interface PropertySource {
      * @since 2.10.0
      */
     final class Util {
-        private static final Map<CharSequence, List<CharSequence>> CACHE = new 
ConcurrentHashMap<>();
+        private static final Map<String, List<CharSequence>> CACHE = new 
ConcurrentHashMap<>();
         // List of "shorthand" properties and the property they map to.
         static {
             populateCache();
@@ -143,11 +140,12 @@ public interface PropertySource {
          * @return the property broken into lower case tokens
          */
         public static List<CharSequence> tokenize(final CharSequence value) {
-            if (CACHE.containsKey(value)) {
-                return CACHE.get(value);
+            final String key = value.toString();
+            if (CACHE.containsKey(key)) {
+                return CACHE.get(key);
             }
-            final List<CharSequence> tokens = 
Arrays.asList(value.toString().split("[._/]+"));
-            CACHE.put(value, tokens);
+            final List<CharSequence> tokens = List.of(key.split("[._/]+"));
+            CACHE.put(key, tokens);
             return tokens;
         }
 
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/util/SortedArrayStringMap.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/SortedArrayStringMap.java
index a7084c4eca..66bb06c683 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/util/SortedArrayStringMap.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/SortedArrayStringMap.java
@@ -240,7 +240,7 @@ public class SortedArrayStringMap implements 
IndexedStringMap {
             } else {
                 merge((SortedArrayStringMap) source);
             }
-        } else if (source != null) {
+        } else {
             source.forEach(PUT_ALL, this);
         }
     }

Reply via email to