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

pkarwasz pushed a commit to branch 2.x-site-pro
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit 57c4f5f14e31f5852cd8c67fc9c2549166eb5f77
Merge: d42d28ff96 ea10ad3e78
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Mon Jun 16 21:49:30 2025 +0200

    Merge tag 'rel/2.25.0' into 2.x-site-pro
    
    Release `2.25.0`

 .cherry_picker.toml                                |  24 +
 log4j-1.2-api/bnd.bnd => .github/FUNDING.yml       |  16 +-
 .github/dependabot.yaml                            |  65 +-
 .github/generate-email.sh                          |   7 +-
 .github/pull_request_template.md                   |  43 +-
 .github/workflows/build.yaml                       |  32 +-
 .github/workflows/close-stale.yaml                 |   2 +-
 .github/workflows/codeql-analysis.yaml             |   2 +-
 .github/workflows/deploy-site.yaml                 |   6 +-
 .../workflows/develocity-publish-build-scans.yaml  |  10 +-
 .github/workflows/merge-dependabot.yaml            |   6 +-
 .gitignore                                         |   2 +
 .mvn/develocity.xml                                |   2 +-
 BUILDING.adoc                                      |  77 +-
 README.adoc                                        |   6 +
 log4j-1.2-api/pom.xml                              |  45 +-
 .../src/main/java/org/apache/log4j/Hierarchy.java  |   7 +
 .../src/main/java/org/apache/log4j/Level.java      |   4 +-
 .../src/main/java/org/apache/log4j/Logger.java     |   2 +-
 .../src/main/java/org/apache/log4j/Priority.java   |  31 +-
 .../org/apache/log4j/bridge/FilterAdapter.java     |   2 +-
 .../org/apache/log4j/bridge/LogEventAdapter.java   |   4 +-
 .../org/apache/log4j/bridge/LogEventWrapper.java   |  19 +
 .../builders/filter/StringMatchFilterBuilder.java  |   2 +-
 .../org/apache/log4j/helpers/PatternParser.java    |  14 +-
 .../org/apache/log4j/helpers/UtilLoggingLevel.java |   4 +
 .../org/apache/log4j/helpers/package-info.java     |   2 +-
 .../org/apache/log4j/rewrite/MapRewritePolicy.java |   1 -
 .../log4j/rewrite/PropertyRewritePolicy.java       |   1 -
 .../java/org/apache/log4j/spi/LoggingEvent.java    |   2 +-
 .../org/apache/log4j/xml/XmlConfiguration.java     |   2 -
 .../org/apache/log4j/BasicConfiguratorTest.java    |  12 +-
 .../org/apache/log4j/CallerInformationTest.java    |  35 +-
 .../test/java/org/apache/log4j/CategoryTest.java   | 159 ++--
 .../java/org/apache/log4j/ConsoleAppenderTest.java |  10 +-
 .../src/test/java/org/apache/log4j/LayoutTest.java |   3 +-
 .../src/test/java/org/apache/log4j/LevelTest.java  |  90 ++-
 .../test/java/org/apache/log4j/ListAppender.java   |   3 +-
 .../test/java/org/apache/log4j/LogManagerTest.java |   8 +-
 .../test/java/org/apache/log4j/LogWithMDCTest.java |  30 +-
 .../java/org/apache/log4j/LogWithRouteTest.java    |  30 +-
 .../java/org/apache/log4j/LoggerJira3410Test.java  |  20 +-
 .../src/test/java/org/apache/log4j/LoggerTest.java | 165 ++--
 .../test/java/org/apache/log4j/LoggingTest.java    |  23 +-
 .../test/java/org/apache/log4j/MDCTestCase.java    |  27 +-
 .../src/test/java/org/apache/log4j/NDCTest.java    |  17 +-
 .../test/java/org/apache/log4j/PriorityTest.java   |  97 ++-
 .../org/apache/log4j/PropertyConfiguratorTest.java |  32 +-
 .../test/java/org/apache/log4j/VelocityTest.java   |  60 --
 .../apache/log4j/bridge/LogEventWrapperTest.java   |  12 +-
 .../apache/log4j/builders/BuilderManagerTest.java  |   4 +-
 .../filter/LevelRangeFilterBuilderTest.java        |  16 +-
 .../builders/layout/PatternLayoutBuilderTest.java  |  10 +-
 .../AbstractLog4j1ConfigurationConverterTest.java  |  17 +-
 .../config/AbstractLog4j1ConfigurationTest.java    | 335 ++++-----
 .../org/apache/log4j/config/AsyncAppenderTest.java |   4 +-
 .../org/apache/log4j/config/AutoConfigTest.java    |  24 +-
 .../Log4j1ConfigurationConverterHadoopTest.java    |  16 +-
 .../Log4j1ConfigurationConverterSparkTest.java     |  16 +-
 .../config/Log4j1ConfigurationFactoryTest.java     |  59 +-
 .../log4j/config/MapRewriteAppenderTest.java       |  35 +-
 .../config/PropertiesConfigurationFactoryTest.java |  22 +-
 .../log4j/config/PropertiesConfigurationTest.java  |  68 +-
 .../config/PropertiesReconfigurationTest.java      |  31 +-
 .../PropertiesRollingWithPropertiesTest.java       |  30 +-
 .../apache/log4j/config/RewriteAppenderTest.java   |  37 +-
 .../config/SocketAppenderConfigurationTest.java    |  15 +-
 .../config/SyslogAppenderConfigurationTest.java    |  16 +-
 .../apache/log4j/config/SyslogAppenderTest.java    |  15 +-
 .../org/apache/log4j/config/TestConfigurator.java  |   4 +-
 .../log4j/config/XmlConfigurationFactoryTest.java  |  22 +-
 .../apache/log4j/config/XmlConfigurationTest.java  |  44 +-
 .../log4j/config/XmlReconfigurationTest.java       |  19 +-
 .../log4j/config/XmlRollingWithPropertiesTest.java |  29 +-
 .../apache/log4j/helpers/BoundedFIFOTestCase.java  |  20 +-
 .../apache/log4j/helpers/CyclicBufferTestCase.java |  22 +-
 .../log4j/helpers/OptionConverterLevelTest.java    |  13 +-
 .../apache/log4j/helpers/UtilLoggingLevelTest.java |  11 +-
 .../log4j/layout/Log4j1SyslogLayoutTest.java       |   4 +-
 .../apache/log4j/layout/Log4j1XmlLayoutTest.java   |  17 +-
 .../apache/log4j/pattern/FormattingInfoTest.java   |   4 +-
 .../pattern/Log4j1LevelPatternConverterTest.java   |   4 +-
 .../pattern/Log4j1MdcPatternConverterTest.java     |  14 +-
 .../pattern/Log4j1NdcPatternConverterTest.java     |  21 +-
 .../apache/log4j/pattern/NameAbbreviatorTest.java  |   2 +-
 .../apache/log4j/spi/ThrowableInformationTest.java |  10 +-
 .../test/java/org/apache/log4j/util/Compare.java   | 155 ----
 .../java/org/apache/log4j/util/ControlFilter.java  |  45 --
 .../log4j/util/EnhancedJunitTestRunnerFilter.java  |  64 --
 .../log4j/util/EnhancedLineNumberFilter.java       |  41 -
 .../test/java/org/apache/log4j/util/Filter.java    |  34 -
 .../apache/log4j/util/JunitTestRunnerFilter.java   |  53 --
 .../org/apache/log4j/util/RelativeTimeFilter.java  |  35 -
 .../apache/log4j/util/SerializationTestHelper.java |   6 +-
 .../org/apache/log4j/util/SunReflectFilter.java    |  42 --
 .../java/org/apache/log4j/util/Transformer.java    |  59 --
 .../apache/log4j/util/XMLLineAttributeFilter.java  |  35 -
 .../org/apache/log4j/util/XMLTimestampFilter.java  |  32 -
 .../java/org/apache/log4j/xml/DOMTestCase.java     | 389 +---------
 .../src/test/resources/DOMTestCase/DOMTest4.xml    |  44 --
 .../resources/DOMTestCase/categoryfactory1.xml     |  35 -
 .../resources/DOMTestCase/categoryfactory2.xml     |  38 -
 .../test/resources/DOMTestCase/loggerfactory1.xml  |  35 -
 ...ableRenderer1.xml => testThrowableRenderer.xml} |   8 +-
 log4j-1.2-api/src/test/resources/hello.vm          |   6 -
 .../apache/logging/log4j/util/StackLocator.java    |   4 -
 .../log4j/util/java9/ProcessIdUtilTest.java        |   4 +-
 .../logging/log4j/util/java9/StackLocatorTest.java |  22 +-
 .../log4j/test/AbstractSerializationTest.java      |   2 +-
 .../log4j/test/ThreadContextUtilityClass.java      |   4 +-
 .../log4j/test/junit/Log4jStaticResources.java     |   2 -
 .../logging/log4j/test/junit/SetTestProperty.java  |   5 +-
 .../logging/log4j/test/junit/TempLoggingDir.java   |   3 +-
 .../log4j/test/junit/TempLoggingDirectory.java     |  56 +-
 .../log4j/test/junit/UsingStatusListener.java      |   4 +-
 .../log4j/test/junit/UsingTestProperties.java      |   3 +-
 .../logging/log4j/test/junit/package-info.java     |   4 +-
 .../apache/logging/log4j/AbstractLoggerTest.java   |  42 +-
 .../logging/log4j/CloseableThreadContextTest.java  |  30 +-
 .../org/apache/logging/log4j/EventLoggerTest.java  |   6 +-
 .../org/apache/logging/log4j/LambdaLoggerTest.java | 146 ++--
 .../java/org/apache/logging/log4j/LevelTest.java   |  22 +-
 .../org/apache/logging/log4j/LogManagerTest.java   |  22 +-
 .../apache/logging/log4j/LoggerSupplierTest.java   |  30 +-
 .../java/org/apache/logging/log4j/LoggerTest.java  | 114 +--
 .../java/org/apache/logging/log4j/MarkerTest.java  |  20 +-
 .../logging/log4j/NoopThreadContextTest.java       |   4 +-
 .../log4j/ThreadContextInheritanceTest.java        |  32 +-
 .../apache/logging/log4j/ThreadContextTest.java    |  36 +-
 .../org/apache/logging/log4j/TraceLoggingTest.java |   6 +-
 .../log4j/internal/DefaultLogBuilderTest.java      |   4 +-
 .../map/UnmodifiableArrayBackedMapTest.java        |  94 ++-
 .../log4j/message/FormattedMessageTest.java        |  26 +-
 .../log4j/message/LocalizedMessageFactoryTest.java |  14 +-
 .../log4j/message/LocalizedMessageTest.java        |  14 +-
 .../logging/log4j/message/MapMessageTest.java      |  54 +-
 .../log4j/message/MessageFormatMessageTest.java    |  16 +-
 .../log4j/message/MessageFormatsPerfTest.java      |  20 +-
 .../log4j/message/ObjectArrayMessageTest.java      |   6 +-
 .../logging/log4j/message/ObjectMessageTest.java   |  12 +-
 .../log4j/message/ParameterFormatterTest.java      |  43 +-
 .../log4j/message/ReusableMessageFactoryTest.java  |  13 +-
 .../log4j/message/ReusableObjectMessageTest.java   |  24 +-
 .../message/ReusableParameterizedMessageTest.java  |  24 +-
 .../log4j/message/ReusableSimpleMessageTest.java   |  24 +-
 .../logging/log4j/message/SimpleMessageTest.java   |   4 +-
 .../log4j/message/StringFormattedMessageTest.java  |  20 +-
 .../log4j/message/StructuredDataMessageTest.java   |  16 +-
 .../log4j/message/ThreadDumpMessageTest.java       |  12 +-
 .../logging/log4j/simple/SimpleLoggerTest.java     |  12 +-
 .../log4j/spi/DefaultThreadContextStackTest.java   |  52 +-
 .../logging/log4j/spi/LoggerAdapterTest.java       |   6 +-
 .../log4j/spi/MutableThreadContextStackTest.java   |  66 +-
 .../logging/log4j/status/StatusDataTest.java       |  52 ++
 .../logging/log4j/status/StatusLoggerTest.java     |  56 ++
 .../log4j/test/junit/TempLoggingDirectoryTest.java |   8 +-
 .../log4j/test/junit/TestPropertySourceTest.java   |   8 +-
 .../org/apache/logging/log4j/util/CharsTest.java   |   6 +-
 .../apache/logging/log4j/util/ConstantsTest.java   |   4 +-
 .../log4j/util/EnvironmentPropertySourceTest.java  |   4 +-
 .../apache/logging/log4j/util/LambdaUtilTest.java  |  24 +-
 .../util/LegacyPropertiesCompatibilityTest.java    |   4 +-
 .../log4j/util/Log4jCharsetsPropertiesTest.java    |   4 +-
 .../logging/log4j/util/ProcessIdUtilTest.java      |   6 +-
 .../log4j/util/PropertiesPropertySourceTest.java   |   6 +-
 .../log4j/util/PropertiesUtilOrderTest.java        |   6 +-
 .../logging/log4j/util/PropertiesUtilTest.java     |  69 +-
 .../log4j/util/PropertySourceCamelCaseTest.java    |   4 +-
 .../log4j/util/PropertySourceTokenizerTest.java    |   4 +-
 .../logging/log4j/util/ServiceLoaderUtilTest.java  |   8 +-
 .../log4j/util/SortedArrayStringMapTest.java       | 118 +--
 .../logging/log4j/util/StackLocatorTestIT.java     |   5 +-
 .../logging/log4j/util/StackLocatorUtilTest.java   |  20 +-
 .../logging/log4j/util/StringBuildersTest.java     |  12 +-
 .../org/apache/logging/log4j/util/StringsTest.java |  18 +-
 .../util/SystemPropertiesPropertySourceTest.java   |   4 +-
 .../org/apache/logging/log4j/util/Unbox1Test.java  |  26 +-
 .../logging/log4j/util/Unbox2ConfigurableTest.java |  10 +-
 .../main/java/org/apache/logging/log4j/Level.java  |   2 -
 .../internal/map/UnmodifiableArrayBackedMap.java   |  11 +-
 .../logging/log4j/message/ParameterFormatter.java  | 149 +++-
 .../log4j/message/ReusableObjectMessage.java       |   6 +-
 .../message/ReusableParameterizedMessage.java      |   6 +-
 .../log4j/message/ReusableSimpleMessage.java       |   6 +-
 .../logging/log4j/message/StructuredDataId.java    |   2 -
 .../logging/log4j/spi/DefaultThreadContextMap.java |  16 +-
 .../apache/logging/log4j/spi/LoggerRegistry.java   |  36 +-
 .../apache/logging/log4j/status/StatusData.java    |   7 +-
 .../apache/logging/log4j/status/StatusLogger.java  |   2 +-
 .../org/apache/logging/log4j/util/Base64Util.java  |  40 +-
 .../util/PrivateSecurityManagerStackTraceUtil.java |  31 +-
 .../apache/logging/log4j/util/PropertiesUtil.java  |  35 +-
 .../logging/log4j/util/ServiceLoaderUtil.java      |   2 -
 .../logging/log4j/util/SortedArrayStringMap.java   |  33 +-
 .../apache/logging/log4j/util/package-info.java    |   2 +-
 .../log4j-api/resource-config.json                 |   9 +
 log4j-appserver/pom.xml                            |   2 +-
 .../log4j/appserver/jetty/Log4j2Logger.java        |   2 +
 .../log4j/appserver/tomcat/TomcatLogger.java       |   2 +
 log4j-cassandra/pom.xml                            |   2 +-
 .../logging/log4j/cassandra/CassandraRule.java     |   4 +-
 log4j-core-its/pom.xml                             |   2 +-
 .../logging/log4j/FilterPerformanceComparison.java |  41 +-
 .../logging/log4j/PerformanceComparison.java       |  23 +-
 .../org/apache/logging/log4j/PerformanceRun.java   |   2 +-
 .../apache/logging/log4j/core/SimplePerfTest.java  |  37 +-
 .../logging/log4j/core/ThreadedPerfTest.java       |  17 +-
 .../apache/logging/log4j/core/ThreadedTest.java    |   9 +-
 .../log4j/core/async/perftest/PerfTestDriver.java  |   9 +-
 log4j-core-java9/src/assembly/java9.xml            |   1 -
 .../apache/logging/log4j/core/time/Instant.java    |  77 --
 .../logging/log4j/core/time/MutableInstant.java    | 157 ----
 .../logging/log4j/core/time/PreciseClock.java      |  38 -
 .../logging/log4j/core/util/SystemClock.java       |  46 --
 log4j-core-test/pom.xml                            |  73 +-
 .../log4j/core/test/appender/ListAppender.java     |   8 +-
 .../log4j/core/test/categories/Layouts.java        |   2 -
 .../log4j/core/test/categories/package-info.java   |   4 +-
 .../log4j/core/test/junit/LoggerContextSource.java |  10 +-
 .../log4j/core/test/junit/package-info.java        |   2 +-
 .../src/test/java/foo/TestFriendlyException.java   | 174 +++++
 .../log4j/FormatterLoggerManualExample.java        |   2 +-
 .../apache/logging/log4j/MarkerMixInJsonTest.java  |   7 +-
 .../org/apache/logging/log4j/MarkerMixInTest.java  |  35 +-
 .../apache/logging/log4j/MarkerMixInXmlTest.java   |   7 +-
 .../apache/logging/log4j/MarkerMixInYamlTest.java  |   7 +-
 .../log4j/core/AppenderRefLevelJsonTest.java       |   8 +-
 .../logging/log4j/core/AppenderRefLevelTest.java   |  12 +-
 .../logging/log4j/core/BasicLoggingTest.java       |   4 +-
 .../logging/log4j/core/CollectionLoggingTest.java  |   8 +-
 .../log4j/core/CustomLevelsOverrideTest.java       |  10 +-
 .../logging/log4j/core/CustomLevelsTest.java       |   8 +-
 .../log4j/core/CustomLevelsWithFiltersTest.java    |  10 +-
 .../apache/logging/log4j/core/DeadlockTest.java    |   4 +-
 .../log4j/core/EventParameterMemoryLeakTest.java   | 145 ++--
 .../logging/log4j/core/ExtendedLevelTest.java      |   4 +-
 .../log4j/core/GarbageCollectionHelper.java        |  66 --
 .../log4j/core/GcFreeAsynchronousLoggingTest.java  |   4 +-
 .../core/GcFreeMixedSyncAsyncLoggingTest.java      |   4 +-
 .../log4j/core/GcFreeSynchronousLoggingTest.java   |   4 +-
 .../org/apache/logging/log4j/core/GcHelper.java    |  54 ++
 .../apache/logging/log4j/core/GcHelperTest.java    |  15 +-
 .../logging/log4j/core/GcPressureGenerator.java    |  81 ++
 .../apache/logging/log4j/core/HostNameTest.java    |   4 +-
 .../apache/logging/log4j/core/LateConfigTest.java  |  14 +-
 .../org/apache/logging/log4j/core/LevelTest.java   |   4 +-
 .../apache/logging/log4j/core/Log4j1222Test.java   |  11 +-
 .../apache/logging/log4j/core/LogEventTest.java    |  12 +-
 .../logging/log4j/core/LoggerContextTest.java      |  38 +
 .../apache/logging/log4j/core/LoggerDateTest.java  |   2 +-
 .../LoggerMessageFactoryCustomizationTest.java     |  59 +-
 ...oggerMessageFactoryDefaultsTlaDisabledTest.java |  15 +-
 ...LoggerMessageFactoryDefaultsTlaEnabledTest.java |  18 +-
 .../org/apache/logging/log4j/core/LoggerTest.java  |  74 +-
 .../logging/log4j/core/LoggerUpdateTest.java       |   6 +-
 .../org/apache/logging/log4j/core/LookupTest.java  |   7 +-
 .../logging/log4j/core/MonitorResourcesTest.java   | 126 ++++
 ...rnResolverDoesNotEvaluateThreadContextTest.java |  10 +-
 .../logging/log4j/core/PatternSelectorTest.java    |   8 +-
 .../log4j/core/PatternVariableResolverTest.java    |   2 +-
 .../log4j/core/PropertiesFileConfigTest.java       |   2 +-
 ...ReusableParameterizedMessageMemoryLeakTest.java |  39 +-
 .../logging/log4j/core/ShutdownDisabledTest.java   |  12 +-
 .../core/ShutdownTimeoutConfigurationTest.java     |   4 +-
 .../logging/log4j/core/StrictXmlConfigTest.java    |  22 +-
 .../logging/log4j/core/TimestampMessageTest.java   |   8 +-
 .../org/apache/logging/log4j/core/XmlEvents.java   |   4 +-
 .../core/appender/AbstractAppenderBuilderTest.java |   4 +-
 .../appender/AsyncAppenderQueueFullPolicyTest.java |   6 +-
 .../log4j/core/appender/AsyncAppenderTest.java     |  32 +-
 .../appender/ConsoleAppenderAnsiMessagesMain.java  |   5 +-
 .../ConsoleAppenderAnsiStyleJira180Main.java       |   8 +-
 .../ConsoleAppenderAnsiStyleJira272Main.java       |   8 +-
 .../ConsoleAppenderAnsiStyleJira319Main.java       |   8 +-
 .../ConsoleAppenderAnsiStyleLayoutMain.java        |  12 +-
 .../ConsoleAppenderAnsiStyleNameLayoutMain.java    |   3 +-
 ...java => ConsoleAppenderAnsiXExceptionMain.java} |  19 +-
 .../core/appender/ConsoleAppenderBuilderTest.java  |   8 +-
 .../ConsoleAppenderDefaultSuppressedThrowable.java |  11 +-
 .../ConsoleAppenderHighlightLayoutDefaultMain.java |   3 +-
 .../ConsoleAppenderHighlightLayoutMain.java        |   3 +-
 .../appender/ConsoleAppenderJAnsiMessageMain.java  |  84 ---
 ...leAppenderJira1002ShortThrowableLayoutMain.java |   4 +-
 .../ConsoleAppenderNoAnsiStyleLayoutMain.java      |   9 +-
 .../log4j/core/appender/ConsoleAppenderTest.java   |  16 +-
 .../log4j/core/appender/FailoverAppenderTest.java  |  51 +-
 .../FailoverFailedPrimaryAppenderTest.java         |  16 +-
 .../core/appender/FileAppenderBuilderTest.java     |  12 +-
 .../core/appender/FileAppenderPermissionsTest.java |  14 +-
 .../log4j/core/appender/FileAppenderTest.java      |  21 +-
 .../core/appender/HttpAppenderBuilderTest.java     | 130 ++++
 .../log4j/core/appender/HttpAppenderTest.java      |   2 +-
 .../log4j/core/appender/InMemoryAppenderTest.java  |   8 +-
 .../core/appender/JansiConsoleAppenderJira965.java |  28 -
 .../appender/JsonCompleteFileAppenderTest.java     |   7 +-
 .../log4j/core/appender/LineReadingTcpServer.java  |   4 +-
 .../appender/MemoryMappedFileAppenderTest.java     |   6 +-
 .../core/appender/MemoryMappedFileManagerTest.java |   6 +-
 .../core/appender/OutputStreamAppenderTest.java    |  42 +-
 .../core/appender/OutputStreamManagerTest.java     |   4 +-
 .../appender/RandomAccessFileAppenderTest.java     |   2 +-
 .../core/appender/RandomAccessFileManagerTest.java |  12 +-
 .../core/appender/ReconfigureAppenderTest.java     |   4 +-
 .../core/appender/ScriptAppenderSelectorTest.java  |   2 +-
 .../log4j/core/appender/SmtpAppenderTest.java      |  36 +-
 .../core/appender/SocketAppenderBuilderTest.java   |   4 +-
 .../core/appender/SocketAppenderReconnectTest.java |  38 +-
 .../appender/SocketAppenderSocketOptionsTest.java  |   8 +-
 .../SocketAppenderSslSocketOptionsTest.java        |   2 +-
 .../log4j/core/appender/SocketAppenderTest.java    |  86 +--
 .../core/appender/SyslogAppenderTestBase.java      |  32 +-
 .../log4j/core/appender/TlsSyslogAppenderTest.java |  10 +-
 .../log4j/core/appender/TlsSyslogFrameTest.java    |   8 +-
 .../log4j/core/appender/WriterAppenderTest.java    |  12 +-
 .../core/appender/XmlCompactFileAppenderTest.java  |  39 +-
 .../core/appender/XmlCompleteFileAppenderTest.java |  11 +-
 .../log4j/core/appender/XmlFileAppenderTest.java   |  30 +-
 .../appender/db/AbstractDatabaseAppenderTest.java  |   5 +-
 .../appender/db/AbstractDatabaseManagerTest.java   |  82 +-
 .../db/jdbc/AbstractJdbcDataSourceTest.java        |   4 +-
 .../core/appender/db/jdbc/ColumnConfigTest.java    | 170 ++---
 .../jdbc/JdbcAppenderStringSubstitutionTest.java   |   2 +-
 .../log4j/core/appender/mom/JmsAppenderTest.java   |   4 +-
 .../appender/mom/jeromq/JeroMqAppenderTest.java    |  10 +-
 .../core/appender/mom/jeromq/JeroMqTestClient.java |   2 +-
 .../mom/kafka/KafkaAppenderCloseTimeoutTest.java   |   6 +-
 .../core/appender/mom/kafka/KafkaAppenderTest.java |  17 +-
 .../kafka/KafkaManagerProducerThreadLeakTest.java  |   7 +-
 .../core/appender/nosql/NoSqlAppenderTest.java     |  36 +-
 .../rewrite/LoggerNameLevelRewritePolicyTest.java  |   4 +-
 .../appender/rewrite/MapRewritePolicyTest.java     |  15 +-
 .../core/appender/rewrite/RewriteAppenderTest.java |  10 +-
 .../appender/rolling/CronTriggeringPolicyTest.java |  16 +-
 .../core/appender/rolling/EligibleFilesTest.java   |  12 +-
 .../log4j/core/appender/rolling/FileSizeTest.java  |   2 +-
 .../rolling/OnStartupTriggeringPolicyTest.java     |   8 +-
 .../appender/rolling/PatternProcessorTest.java     |  52 +-
 .../RandomRollingAppenderOnStartupTest.java        |  11 +-
 .../appender/rolling/RollingAppenderCountTest.java |   2 +-
 .../RollingAppenderCronAndSizeLookupTest.java      |   6 +-
 .../rolling/RollingAppenderCronAndSizeTest.java    |   4 +-
 .../rolling/RollingAppenderCronOnStartupTest.java  |  28 +-
 .../rolling/RollingAppenderCronOnceADayTest.java   |   9 +-
 .../appender/rolling/RollingAppenderCronTest.java  |   5 +-
 .../rolling/RollingAppenderDeleteScriptTest.java   |   3 +-
 .../RollingAppenderDirectWrite1906Test.java        |   9 +-
 .../RollingAppenderDirectWriteStartupSizeTest.java |   2 +-
 ...erDirectWriteTempCompressedFilePatternTest.java |   4 +-
 .../rolling/RollingAppenderDirectWriteTest.java    |   9 +-
 ...RollingAppenderDirectWriteWithFilenameTest.java |   4 +-
 ...llingAppenderDirectWriteWithHtmlLayoutTest.java |   2 +-
 ...lingAppenderDirectWriteWithReconfigureTest.java |   4 +-
 .../RollingAppenderNoUnconditionalDeleteTest.java  |   2 +-
 .../rolling/RollingAppenderOnStartup2Test.java     |  29 +-
 .../RollingAppenderOnStartupDirectTest.java        |  32 +-
 .../rolling/RollingAppenderOnStartupTest.java      |  20 +-
 .../rolling/RollingAppenderReconfigureTest.java    |   4 +-
 ...RollingAppenderSizeCompressPermissionsTest.java |   2 +-
 .../rolling/RollingAppenderSizeMaxWidthTest.java   |   4 +-
 .../rolling/RollingAppenderSizeNoCompressTest.java |   4 +-
 .../appender/rolling/RollingAppenderSizeTest.java  |   6 +-
 .../rolling/RollingAppenderSizeWithTimeTest.java   |   2 +-
 ...llingAppenderTempCompressedFilePatternTest.java |   4 +-
 .../RollingAppenderTimeAndSizeDirectTest.java      |   4 +-
 .../rolling/RollingAppenderTimeAndSizeTest.java    |   4 +-
 .../rolling/RollingAppenderUncompressedTest.java   |   2 +-
 .../rolling/RollingDirectSize3490Test.java         |   6 +-
 .../rolling/RollingFileAppenderAccessTest.java     |  19 +-
 .../rolling/RollingFileAppenderBuilderTest.java    |  11 +-
 .../RollingFileAppenderInterruptedThreadTest.java  |   9 +-
 .../rolling/RollingFileAppenderLayoutTest.java     |  11 +-
 .../rolling/RollingFileAppenderUpdateDataTest.java |  29 +-
 .../appender/rolling/RollingFileManagerTest.java   |  70 +-
 .../appender/rolling/RollingNewDirectoryTest.java  |   2 +-
 .../RollingRandomAccessFileManagerTest.java        |  28 +-
 ...omAppenderDirectWriteAndSwitchDirectorTest.java |   4 +-
 .../RollingRandomAppenderDirectWriteTest.java      |   4 +-
 ...gRandomAppenderDirectWriteWithFilenameTest.java |   4 +-
 .../appender/rolling/RolloverFilePatternTest.java  |  20 +-
 .../appender/rolling/RolloverWithPaddingTest.java  |   6 +-
 .../rolling/action/AbstractActionTest.java         |   5 +-
 .../rolling/action/Bzip2CompressActionTest.java    |  10 +-
 .../appender/rolling/action/DeleteActionTest.java  |  18 +-
 .../rolling/action/DeletingVisitorTest.java        |  20 +-
 .../core/appender/rolling/action/DurationTest.java |  28 +-
 .../rolling/action/FileRenameActionTest.java       |  12 +-
 .../core/appender/rolling/action/FileSizeTest.java |   6 +-
 .../rolling/action/IfAccumulatedFileCountTest.java |  10 +-
 .../rolling/action/IfAccumulatedFileSizeTest.java  |  16 +-
 .../core/appender/rolling/action/IfAnyTest.java    |  10 +-
 .../appender/rolling/action/IfFileNameTest.java    |  20 +-
 .../rolling/action/IfLastModifiedTest.java         |  14 +-
 .../core/appender/rolling/action/IfNotTest.java    |  10 +-
 .../appender/rolling/action/PathConditionTest.java |  10 +-
 .../action/PathSortByModificationTimeTest.java     |   8 +-
 .../rolling/action/ScriptConditionTest.java        |  16 +-
 .../rolling/action/SortingVisitorTest.java         |  12 +-
 .../appender/routing/JsonRoutingAppender2Test.java |   3 +-
 .../appender/routing/JsonRoutingAppenderTest.java  |   3 +-
 .../routing/PropertiesRoutingAppenderTest.java     |   7 +-
 .../appender/routing/RoutingAppender2767Test.java  |   4 +-
 .../appender/routing/RoutingAppender3350Test.java  |   2 +-
 .../RoutingAppenderKeyLookupEvaluationTest.java    |   4 +-
 .../core/appender/routing/RoutingAppenderTest.java |   7 +-
 .../routing/RoutingAppenderWithJndiTest.java       |  28 +-
 .../routing/RoutingAppenderWithPurgingTest.java    |   6 +-
 .../routing/RoutingDefaultAppenderTest.java        |   3 +-
 .../async/AsyncAppenderExceptionHandlingTest.java  |  13 +-
 .../async/AsyncLoggerArgumentFreedOnErrorTest.java |  85 +--
 .../async/AsyncLoggerClassLoadDeadlockTest.java    |  25 +-
 .../core/async/AsyncLoggerConfigAutoFlushTest.java |  28 +-
 .../core/async/AsyncLoggerConfigErrorOnFormat.java |  34 +-
 .../log4j/core/async/AsyncLoggerConfigTest.java    |  10 +-
 .../log4j/core/async/AsyncLoggerConfigTest2.java   |  26 +-
 .../AsyncLoggerConfigUseAfterShutdownTest.java     |  18 +-
 .../AsyncLoggerConfigWithAsyncEnabledTest.java     |  30 +-
 ...AsyncLoggerContextSelectorInitialStateTest.java |  14 +-
 .../core/async/AsyncLoggerContextSelectorTest.java |  31 +-
 .../log4j/core/async/AsyncLoggerContextTest.java   |   6 +-
 .../AsyncLoggerCustomSelectorLocationTest.java     |  24 +-
 .../core/async/AsyncLoggerDefaultLocationTest.java |  36 +-
 .../AsyncLoggerEventTranslationExceptionTest.java  |  10 +-
 .../log4j/core/async/AsyncLoggerLocationTest.java  |  34 +-
 .../log4j/core/async/AsyncLoggerNanoTimeTest.java  |  41 +-
 .../logging/log4j/core/async/AsyncLoggerTest.java  |  38 +-
 .../async/AsyncLoggerTestCachedThreadName.java     |  36 +-
 .../async/AsyncLoggerTestUncachedThreadName.java   |  36 +-
 .../core/async/AsyncLoggerThreadContextTest.java   |   6 +-
 .../async/AsyncLoggerThreadNameStrategyTest.java   |  38 +-
 .../async/AsyncLoggerTimestampMessageTest.java     |  32 +-
 .../async/AsyncLoggerUseAfterShutdownTest.java     |  24 +-
 .../async/AsyncLoggersWithAsyncAppenderTest.java   |   4 +-
 .../AsyncLoggersWithAsyncLoggerConfigTest.java     |   8 +-
 .../async/AsyncQueueFullPolicyFactoryTest.java     |  36 +-
 .../async/AsyncRootLoggerDefaultLocationTest.java  |  36 +-
 ...WaitStrategyFactoryConfigGlobalLoggersTest.java |  28 +-
 .../async/AsyncWaitStrategyFactoryConfigTest.java  |  89 ++-
 ...egyFactoryIncorrectConfigGlobalLoggersTest.java |  26 +-
 .../async/BasicAsyncLoggerContextSelectorTest.java |  50 +-
 .../logging/log4j/core/async/BlockingAppender.java |   3 +-
 .../async/DefaultAsyncQueueFullPolicyTest.java     |  16 +-
 .../async/DiscardingAsyncQueueFullPolicyTest.java  |  70 +-
 .../log4j/core/async/Log4j2Jira1688AsyncTest.java  |   2 +-
 .../log4j/core/async/Log4j2Jira1688Test.java       |   2 +-
 .../core/async/QueueFullAsyncLogger3Test.java      |  75 +-
 .../log4j/core/async/RingBufferLogEventTest.java   |  48 +-
 .../logging/log4j/core/config/AdvertiserTest.java  |  12 +-
 .../core/config/AppenderControlArraySetTest.java   |  26 +-
 .../config/CompositeConfigurationMissingTest.java  |   6 +-
 .../core/config/CompositeConfigurationTest.java    |  16 +-
 .../core/config/ConfigurationFactoryTest.java      |   5 +-
 .../core/config/ConfigurationPropertyTest.java     |   6 +-
 .../log4j/core/config/ConfigurationSourceTest.java |   2 +-
 .../log4j/core/config/Configurator1Test.java       |  50 +-
 .../log4j/core/config/Configurator2Test.java       |  12 +-
 .../log4j/core/config/ConfiguratorErrorTest.java   |   6 +-
 .../core/config/ConfiguratorSetLevelTest.java      |   4 +-
 .../log4j/core/config/CustomConfigurationTest.java |  25 +-
 .../logging/log4j/core/config/FileOutputTest.java  |   5 +-
 .../log4j/core/config/JiraLog4j2_2134Test.java     |  12 +-
 .../logging/log4j/core/config/Log4j_3431_Test.java |  89 +++
 .../log4j/core/config/LoggerConfigTest.java        |  46 +-
 .../log4j/core/config/LoggersPluginTest.java       |   4 +-
 .../log4j/core/config/MissingLanguageTest.java     |   6 +-
 .../log4j/core/config/MissingRootLoggerTest.java   |   4 +-
 .../log4j/core/config/NestedLoggerConfigTest.java  |  29 +-
 .../logging/log4j/core/config/NoLanguagesTest.java |   6 +-
 .../log4j/core/config/PropertiesPluginTest.java    |   6 +-
 .../logging/log4j/core/config/PropertyTest.java    |  12 +-
 .../core/config/ReconfigurationDeadlockTest.java   |  18 +-
 .../core/config/ReconfigurationFailureTest.java    |  15 +-
 .../core/config/arbiters/BasicArbiterTest.java     |  16 +-
 .../config/arbiters/EnvironmentArbiterTest.java    |  12 +-
 .../core/config/arbiters/ScriptArbiterTest.java    |  16 +-
 .../core/config/arbiters/SelectArbiterTest.java    |  14 +-
 .../config/arbiters/SystemPropertyArbiterTest.java |  16 +-
 .../config/builder/ConfigurationAssemblerTest.java |  12 +-
 .../config/builder/ConfigurationBuilderTest.java   |   4 +-
 .../plugins/convert/DateTypeConverterTest.java     |  26 +-
 .../plugins/convert/TypeConverterRegistryTest.java |  30 +-
 .../config/plugins/convert/TypeConvertersTest.java |  29 +-
 .../config/plugins/processor/FakeAnnotations.java  |  83 +++
 .../core/config/plugins/processor/FakePlugin.java  |  59 ++
 .../processor/FakePluginPublicSetter.java.source   |  89 +++
 .../plugins/processor/GraalVmProcessorTest.java    | 145 ++++
 .../config/plugins/processor/PluginCacheTest.java  |  25 +-
 .../processor/PluginProcessorPublicSetterTest.java | 110 +++
 .../plugins/processor/PluginProcessorTest.java     |  37 +-
 .../util/ResolverUtilCustomProtocolTest.java       |  28 +-
 .../core/config/plugins/util/ResolverUtilTest.java |  18 +-
 .../validators/RequiredValidatorTest.java          |   8 +-
 .../validators/ValidHostValidatorTest.java         |  10 +-
 .../validators/ValidPortValidatorTest.java         |  10 +-
 .../ValidatingPluginWithFailoverTest.java          |   6 +-
 .../ValidatingPluginWithGenericBuilderTest.java    |   8 +-
 ...ngPluginWithGenericSubclassFoo1BuilderTest.java |   8 +-
 .../ValidatingPluginWithTypedBuilderTest.java      |   8 +-
 .../properties/PropertiesConfigurationTest.java    |  24 +-
 .../core/config/xml/XmlConfigurationSecurity.java  |   5 +-
 .../log4j/core/config/xml/XmlLoggerPropsTest.java  |   4 +-
 ...GarbageFreeSortedArrayThreadContextMapTest.java |   2 +-
 .../log4j/core/filter/AbstractFilterTest.java      |   4 +-
 .../log4j/core/filter/AbstractFilterableTest.java  |  70 +-
 .../core/filter/AbstractScriptFilterTest.java      |   9 +-
 .../log4j/core/filter/BurstFilterLogDelayTest.java |   4 +-
 .../logging/log4j/core/filter/BurstFilterTest.java |   4 +-
 .../log4j/core/filter/CompositeFilterTest.java     |  10 +-
 .../core/filter/DynamicThresholdFilterTest.java    |  15 +-
 .../logging/log4j/core/filter/MapFilterTest.java   |   9 +-
 .../log4j/core/filter/MarkerFilterTest.java        |  10 +-
 .../log4j/core/filter/NoMarkerFilterTest.java      |   8 +-
 .../logging/log4j/core/filter/RegexFilterTest.java |  34 +-
 .../log4j/core/filter/StringMatchFilterTest.java   |  88 +++
 .../core/filter/StructuredDataFilterTest.java      |   9 +-
 .../core/filter/ThreadContextMapFilterTest.java    |  20 +-
 .../log4j/core/filter/ThresholdFilterTest.java     |   8 +-
 .../logging/log4j/core/filter/TimeFilterTest.java  | 113 +--
 ...taFactoryPropertySetMissingConstructorTest.java |   8 +-
 .../impl/ContextDataFactoryPropertySetTest.java    |  14 +-
 .../log4j/core/impl/ContextDataFactoryTest.java    |  14 +-
 .../log4j/core/impl/FactoryTestStringMap.java      |  23 +
 .../FactoryTestStringMapWithoutIntConstructor.java |  23 +
 .../core/impl/JdkMapAdapterStringMapTest.java      | 113 +--
 .../log4j/core/impl/Log4jLogEventNanoTimeTest.java |  13 +-
 .../logging/log4j/core/impl/Log4jLogEventTest.java |  35 +-
 .../log4j/core/impl/MutableLogEventTest.java       |  20 +-
 .../NestedLoggingFromThrowableMessageTest.java     |   5 +-
 .../core/impl/ReusableLogEventFactoryTest.java     |  12 +-
 .../core/impl/ThreadContextDataInjectorTest.java   |   4 +-
 .../core/impl/ThrowableFormatOptionsTest.java      | 134 ++--
 .../log4j/core/impl/ThrowableProxyHelperTest.java  |  79 --
 .../core/impl/ThrowableProxyRendererTest.java      |  38 -
 .../log4j/core/impl/ThrowableProxyTest.java        | 462 ------------
 .../core/jackson/JacksonIssue429MyNamesTest.java   |  28 +-
 .../log4j/core/jackson/JacksonIssue429Test.java    |  28 +-
 .../log4j/core/jackson/LevelMixInXmlTest.java      |   2 +-
 .../core/jackson/StackTraceElementMixInTest.java   |  28 +-
 .../apache/logging/log4j/core/jmx/ServerTest.java  |  22 +-
 .../core/layout/AbstractStringLayoutTest.java      |   6 +-
 .../ConcurrentLoggingWithGelfLayoutTest.java       |   4 +-
 .../ConcurrentLoggingWithJsonLayoutTest.java       |   2 +-
 .../log4j/core/layout/CsvLogEventLayoutTest.java   |  10 +-
 .../layout/CsvParameterLayoutAllAsyncTest.java     |  27 +-
 .../log4j/core/layout/CsvParameterLayoutTest.java  |   4 +-
 .../logging/log4j/core/layout/GelfLayout2Test.java |   4 +-
 .../logging/log4j/core/layout/GelfLayout3Test.java |   6 +-
 .../core/layout/GelfLayoutPatternSelectorTest.java |   4 +-
 .../logging/log4j/core/layout/GelfLayoutTest.java  |  30 +-
 .../logging/log4j/core/layout/HtmlLayoutTest.java  |  46 +-
 .../log4j/core/layout/JsonLayoutMillisTest.java    |   2 +-
 .../logging/log4j/core/layout/JsonLayoutTest.java  | 124 ++--
 .../log4j/core/layout/Log4j2_2195_Test.java        |   4 +-
 .../log4j/core/layout/LogEventFixtures.java        |  12 +-
 .../PatternLayoutDefaultExceptionHandlerTest.java  |  75 ++
 .../core/layout/PatternLayoutLookupDateTest.java   |   4 +-
 .../layout/PatternLayoutMainMapLookupTest.java     |   6 +-
 .../core/layout/PatternLayoutNoLookupDateTest.java |   9 +-
 .../log4j/core/layout/PatternLayoutTest.java       |  55 +-
 .../log4j/core/layout/PatternSelectorTest.java     |   6 +-
 .../log4j/core/layout/Rfc5424LayoutTest.java       |  40 +-
 .../log4j/core/layout/SerializedLayoutTest.java    |   2 +-
 .../core/layout/StringBuilderEncoderTest.java      |  37 +-
 .../log4j/core/layout/SyslogLayoutTest.java        |   8 +-
 .../logging/log4j/core/layout/XmlLayoutTest.java   |  23 +-
 .../logging/log4j/core/layout/YamlLayoutTest.java  |  84 +--
 .../logging/log4j/core/lookup/CaseLookupTest.java  |   4 +-
 .../log4j/core/lookup/ContextMapLookupTest.java    |   2 +-
 .../logging/log4j/core/lookup/DateLookupTest.java  |   8 +-
 .../log4j/core/lookup/EnvironmentLookupTest.java   |   4 +-
 .../logging/log4j/core/lookup/EventLookupTest.java |  14 +-
 .../log4j/core/lookup/InterpolatorTest.java        |   2 +-
 .../log4j/core/lookup/JndiDisabledLookupTest.java  |   6 +-
 .../logging/log4j/core/lookup/JndiExploit.java     |   3 +-
 .../logging/log4j/core/lookup/JndiLookupTest.java  |   2 +-
 .../core/lookup/JndiRestrictedLookupTest.java      |   5 +-
 .../logging/log4j/core/lookup/Log4jLookupTest.java |  10 +-
 .../core/lookup/Log4jLookupWithSpacesTest.java     |  10 +-
 .../logging/log4j/core/lookup/MainLookupTest.java  |   4 +-
 .../logging/log4j/core/lookup/MapLookupTest.java   |  18 +-
 .../log4j/core/lookup/MarkerLookupConfigTest.java  |   4 +-
 .../log4j/core/lookup/MarkerLookupTest.java        |  14 +-
 .../log4j/core/lookup/PropertiesLookupTest.java    |  16 +-
 .../core/lookup/ResourceBundleLookupTest.java      |  11 +-
 .../log4j/core/lookup/StrSubstitutorTest.java      |  56 +-
 .../core/lookup/StructuredDataLookupTest.java      |   8 +-
 .../core/lookup/SystemPropertiesLookupTest.java    |   8 +-
 .../message/ExtendedThreadInformationTest.java     |  49 +-
 .../logging/log4j/core/net/JndiManagerTest.java    |  14 +-
 .../logging/log4j/core/net/PriorityTest.java       |   4 +-
 .../logging/log4j/core/net/SmtpManagerTest.java    |  24 +-
 .../log4j/core/net/UrlConnectionFactoryTest.java   |   2 +-
 .../net/ssl/EnvironmentPasswordProviderTest.java   |   6 +-
 .../core/net/ssl/FilePasswordProviderTest.java     |   8 +-
 .../core/net/ssl/KeyStoreConfigurationTest.java    |  18 +-
 .../core/net/ssl/MemoryPasswordProviderTest.java   |   8 +-
 .../core/net/ssl/SslConfigurationFactoryTest.java  |   9 +-
 .../log4j/core/net/ssl/StoreConfigurationTest.java |   8 +-
 .../core/net/ssl/TrustStoreConfigurationTest.java  |  21 +-
 .../log4j/core/parser/JsonLogEventParserTest.java  |  46 +-
 .../log4j/core/parser/LogEventParserTest.java      |   6 +-
 .../log4j/core/parser/XmlLogEventParserTest.java   |  44 +-
 .../log4j/core/parser/YamlLogEventParserTest.java  |  42 +-
 .../log4j/core/pattern/CallerInformationTest.java  |   6 +-
 .../core/pattern/DatePatternConverterTestBase.java | 256 ++-----
 .../log4j/core/pattern/DisableAnsiTest.java        |   6 +-
 .../core/pattern/DynamicWordAbbreviatorTest.java   |   7 +-
 .../core/pattern/EncodingPatternConverterTest.java |  12 +-
 .../pattern/EndOfBatchPatternConverterTest.java    |   6 +-
 .../EqualsIgnoreCaseReplacementConverterTest.java  |   8 +-
 .../pattern/EqualsReplacementConverterTest.java    |  18 +-
 .../ExtendedThrowablePatternConverterTest.java     | 298 ++++----
 .../log4j/core/pattern/ExtendedThrowableTest.java  |  52 --
 .../log4j/core/pattern/FormattingInfoTest.java     |   8 +-
 .../log4j/core/pattern/HighlightConverterTest.java |  22 +-
 .../log4j/core/pattern/JAnsiTextRendererTest.java  |  58 ++
 .../core/pattern/LevelPatternConverterTest.java    |  18 +-
 .../core/pattern/LiteralPatternConverterTest.java  |   6 +-
 ...cationPatternConvertersRequireLocationTest.java |   3 +-
 .../pattern/LoggerFqcnPatternConverterTest.java    |   4 +-
 .../core/pattern/MapPatternConverterTest.java      |   8 +-
 .../core/pattern/MarkerPatternConverterTest.java   |   4 +-
 .../MarkerSimpleNamePatternConverterTest.java      |   4 +-
 .../log4j/core/pattern/MaxLengthConverterTest.java |   8 +-
 .../core/pattern/MdcPatternConverterTest.java      |  22 +-
 ...rterTest.java => MessageAnsiConverterTest.java} |   8 +-
 .../core/pattern/MessagePatternConverterTest.java  |  22 +-
 .../core/pattern/MessageStyledConverterTest.java   |   8 +-
 .../log4j/core/pattern/NameAbbreviatorTest.java    |  40 +-
 .../core/pattern/NanoTimePatternConverterTest.java |   4 +-
 .../core/pattern/NdcPatternConverterTest.java      |  10 +-
 .../log4j/core/pattern/NoConsoleNoAnsiTest.java    |   6 +-
 .../log4j/core/pattern/PatternParserTest.java      |  81 +-
 .../pattern/ProcessIdPatternConverterTest.java     |   4 +-
 .../pattern/RegexReplacementConverterTest.java     |   4 +-
 .../log4j/core/pattern/RegexReplacementTest.java   |   8 +-
 .../core/pattern/RepeatPatternConverterTest.java   |   4 +-
 .../pattern/RootThrowablePatternConverterTest.java | 284 ++++---
 .../log4j/core/pattern/RootThrowableTest.java      |  46 --
 .../SequenceNumberPatternConverterTest.java        |   4 +-
 ...quenceNumberPatternConverterZeroPaddedTest.java |   4 +-
 .../pattern/SimpleLiteralPatternConverterTest.java |   6 +-
 .../log4j/core/pattern/StyleConverterTest.java     |  14 +-
 .../core/pattern/ThreadIdPatternConverterTest.java |   4 +-
 .../pattern/ThreadNamePatternConverterTest.java    |   4 +-
 .../ThreadPriorityPatternConverterTest.java        |   4 +-
 .../pattern/ThrowablePatternConverterTest.java     | 592 ++++++++++-----
 .../logging/log4j/core/pattern/ThrowableTest.java  |  56 --
 .../VariablesNotEmptyReplacementConverterTest.java |  14 +-
 .../core/selector/BasicContextSelectorTest.java    |  24 +-
 .../selector/ClassLoaderContextSelectorTest.java   |   6 +-
 .../logging/log4j/core/test/LogBuilderTest.java    |   4 +-
 .../log4j/core/tools/GenerateCustomLoggerTest.java |   6 +-
 .../core/tools/GenerateExtendedLoggerTest.java     |   6 +-
 .../logging/log4j/core/util/ClockFactoryTest.java  |  18 +-
 .../log4j/core/util/ContextDataProviderTest.java   |   6 +-
 .../log4j/core/util/CronExpressionTest.java        |  28 +-
 .../logging/log4j/core/util/CyclicBufferTest.java  |  10 +-
 .../log4j/core/util/DummyNanoClockTest.java        |   6 +-
 .../logging/log4j/core/util/FileUtilsTest.java     |  20 +-
 .../apache/logging/log4j/core/util/InitTest.java   |   6 +-
 .../logging/log4j/core/util/IntegersTest.java      |   6 +-
 .../logging/log4j/core/util/JsonUtilsTest.java     |   8 +-
 .../apache/logging/log4j/core/util/LoaderTest.java |   6 +-
 .../logging/log4j/core/util/NetUtilsTest.java      |  12 +-
 .../log4j/core/util/OptionConverterTest.java       |  10 +-
 .../core/util/ShutdownCallbackRegistryTest.java    |   8 +-
 .../apache/logging/log4j/core/util/SourceTest.java |  46 +-
 .../logging/log4j/core/util/SystemClockTest.java   |   6 +-
 .../log4j/core/util/SystemNanoClockTest.java       |   4 +-
 .../logging/log4j/core/util/ThrowablesTest.java    |  19 +-
 .../apache/logging/log4j/core/util/UuidTest.java   |   8 +-
 .../core/util/datetime/FixedDateFormatTest.java    |  54 +-
 .../util/internal/InternalLoggerRegistryTest.java  | 153 ++++
 .../instant/InstantNumberFormatterTest.java        |  70 ++
 .../InstantPatternDynamicFormatterTest.java        | 458 ++++++++++++
 ...stantPatternThreadLocalCachedFormatterTest.java | 292 ++++++++
 .../MutableLogEventWithReusableParamMsgTest.java   |   4 +-
 .../AsyncWaitStrategyFactoryConfigTest.properties  |  12 +-
 .../src/test/resources/bad/log4j-loggers.xml       |   2 +-
 .../resources/config/MonitorResource/log4j.json    |  15 +
 .../config/MonitorResource/log4j.properties        |  17 +-
 .../MonitorResource/log4j.xml}                     |  27 +-
 .../resources/config/MonitorResource/log4j.yaml    |  17 +-
 ...sole-msg-ansi.xml => log4j-asynch-location.xml} |  15 +-
 ...wablefilter.xml => log4j-failover-location.xml} |  37 +-
 .../resources/log4j-rolling-size-with-time.xml     |   2 +-
 .../log4j2-asyncwaitfactoryconfig-3159-nok.xml     |  10 +-
 .../log4j2-stringmatchfilter-3153-nok.xml          |  12 +-
 .../resources/log4j2-stringmatchfilter-3153-ok.xml |  10 +-
 log4j-core/pom.xml                                 |  11 +-
 .../org/apache/logging/log4j/core/LogEvent.java    |   3 +
 .../java/org/apache/logging/log4j/core/Logger.java |  75 +-
 .../apache/logging/log4j/core/LoggerContext.java   |  75 +-
 .../logging/log4j/core/appender/AsyncAppender.java |  19 +
 .../log4j/core/appender/ConsoleAppender.java       | 151 ++--
 .../log4j/core/appender/FailoverAppender.java      |  17 +
 .../logging/log4j/core/appender/HttpAppender.java  |  24 +-
 .../log4j/core/appender/db/jdbc/JdbcAppender.java  |   2 +
 .../core/appender/db/jdbc/JdbcDatabaseManager.java |   9 +-
 .../log4j/core/appender/mom/JmsAppender.java       |  11 +-
 .../log4j/core/appender/mom/JmsManager.java        |   6 +-
 .../core/appender/mom/jeromq/JeroMqAppender.java   |  22 +-
 .../log4j/core/appender/mom/package-info.java      |   2 +-
 .../core/appender/rolling/RollingFileManager.java  |  22 +-
 .../logging/log4j/core/async/AsyncLogger.java      |  34 +-
 .../log4j/core/async/AsyncLoggerConfig.java        |  35 +-
 .../core/async/AsyncLoggerConfigDisruptor.java     |   6 +-
 .../core/async/AsyncWaitStrategyFactoryConfig.java |  10 +-
 .../log4j/core/async/RingBufferLogEvent.java       |  40 +-
 .../core/async/RingBufferLogEventTranslator.java   |  16 +-
 .../logging/log4j/core/async/package-info.java     |   2 +-
 .../log4j/core/config/AbstractConfiguration.java   |  47 +-
 .../logging/log4j/core/config/DefaultLayout.java   |  88 +++
 .../logging/log4j/core/config/LoggerConfig.java    |  34 +-
 .../logging/log4j/core/config/MonitorResource.java |  95 +++
 .../log4j/core/config/MonitorResources.java        |  54 ++
 .../config/builder/api/ConfigurationBuilder.java   |  10 +
 .../core/config/builder/api/package-info.java      |   2 +-
 .../config/builder/impl/BuiltConfiguration.java    |  17 +
 .../builder/impl/DefaultConfigurationBuilder.java  |  22 +-
 .../core/config/builder/impl/package-info.java     |   2 +-
 .../logging/log4j/core/config/package-info.java    |   2 +-
 .../config/plugins/convert/TypeConverters.java     |   9 +-
 .../config/plugins/processor/GraalVmProcessor.java | 312 ++++++++
 .../config/plugins/processor/PluginProcessor.java  | 144 +++-
 .../plugins/processor/internal/Annotations.java    | 147 ++++
 .../processor/internal/ReachabilityMetadata.java   | 290 ++++++++
 .../config/plugins/processor/package-info.java     |   2 +-
 .../properties/PropertiesConfigurationBuilder.java |  26 +-
 .../log4j/core/config/xml/XmlConfiguration.java    |  12 +-
 .../log4j/core/filter/AbstractFilterable.java      |   3 +-
 .../logging/log4j/core/filter/CompositeFilter.java |   6 +-
 .../core/filter/MutableThreadContextMapFilter.java |   6 +-
 .../logging/log4j/core/filter/RegexFilter.java     |   3 +-
 .../log4j/core/filter/StringMatchFilter.java       |  30 +-
 .../logging/log4j/core/filter/ThresholdFilter.java |  13 +-
 .../logging/log4j/core/filter/package-info.java    |   2 +-
 .../logging/log4j/core/impl/ExtendedClassInfo.java |   1 +
 .../log4j/core/impl/ExtendedStackTraceElement.java |   1 +
 .../log4j/core/impl/JdkMapAdapterStringMap.java    |  14 +-
 .../log4j/core/impl/Log4jContextFactory.java       |   9 +-
 .../logging/log4j/core/impl/Log4jLogEvent.java     | 228 +++---
 .../logging/log4j/core/impl/Log4jProvider.java     |   2 +-
 .../logging/log4j/core/impl/MutableLogEvent.java   |  54 +-
 .../log4j/core/impl/ReusableLogEventFactory.java   |  25 +-
 .../log4j/core/impl/ThrowableFormatOptions.java    |  24 +-
 .../logging/log4j/core/impl/ThrowableProxy.java    |   1 +
 .../log4j/core/impl/ThrowableProxyHelper.java      |   1 +
 .../log4j/core/impl/ThrowableProxyRenderer.java    |   1 +
 .../logging/log4j/core/impl/package-info.java      |   2 +-
 .../jackson/ExtendedStackTraceElementMixIn.java    |   1 +
 .../logging/log4j/core/jackson/JsonConstants.java  |   3 -
 .../log4j/core/jackson/ThrowableProxyMixIn.java    |   1 +
 .../ThrowableProxyWithStacktraceAsStringMixIn.java |   1 +
 .../ThrowableProxyWithoutStacktraceMixIn.java      |   1 +
 .../logging/log4j/core/jackson/package-info.java   |   2 +-
 .../log4j/core/layout/AbstractJacksonLayout.java   |   5 +-
 .../log4j/core/layout/CsvLogEventLayout.java       |   2 +-
 .../logging/log4j/core/layout/GelfLayout.java      |  24 +
 .../logging/log4j/core/layout/PatternLayout.java   |  15 +-
 .../logging/log4j/core/layout/Rfc5424Layout.java   |   8 +
 .../logging/log4j/core/layout/package-info.java    |   2 +-
 .../core/lookup/ConfigurationStrSubstitutor.java   |   2 +-
 .../lookup/JmxRuntimeInputArgumentsLookup.java     |  27 +-
 .../logging/log4j/core/lookup/MainMapLookup.java   |   4 +
 .../logging/log4j/core/lookup/package-info.java    |   2 +-
 .../core/message/ExtendedThreadInformation.java    |  29 +-
 .../core/net/SocketPerformancePreferences.java     |   3 +
 .../apache/logging/log4j/core/osgi/Activator.java  |   2 +-
 .../logging/log4j/core/pattern/AnsiEscape.java     |   7 +-
 .../log4j/core/pattern/ClassResourceInfo.java      |  95 +++
 .../log4j/core/pattern/DatePatternConverter.java   | 490 ++++++------
 .../pattern/ExtendedThrowablePatternConverter.java |  70 +-
 .../log4j/core/pattern/JAnsiTextRenderer.java      | 423 +++++------
 .../core/pattern/MessagePatternConverter.java      |   9 +-
 .../logging/log4j/core/pattern/PatternParser.java  |   2 +-
 .../log4j/core/pattern/RegexReplacement.java       |   3 +-
 .../pattern/RootThrowablePatternConverter.java     |  77 +-
 .../ThrowableExtendedStackTraceRenderer.java       | 206 +++++
 ...ThrowableExtendedStackTraceRendererFactory.java |  20 +-
 .../ThrowableInvertedPropertyRendererFactory.java  |  29 +-
 .../ThrowableInvertedStackTraceRenderer.java       | 131 ++++
 ...ThrowableInvertedStackTraceRendererFactory.java |  20 +-
 .../core/pattern/ThrowablePatternConverter.java    | 330 ++++----
 .../pattern/ThrowablePropertyRendererFactory.java  | 120 +++
 .../log4j/core/pattern/ThrowableRenderer.java      |  13 +-
 .../core/pattern/ThrowableStackTraceRenderer.java  | 343 +++++++++
 .../ThrowableStackTraceRendererFactory.java        |  21 +-
 .../logging/log4j/core/pattern/package-info.java   |   2 +-
 .../org/apache/logging/log4j/core/util/Loader.java |   4 +
 .../logging/log4j/core/util/SystemClock.java       |  12 +-
 .../apache/logging/log4j/core/util/Throwables.java |  37 +-
 .../log4j/core/util/datetime/DatePrinter.java      |   2 +
 .../log4j/core/util/datetime/FastDateFormat.java   |   2 +
 .../log4j/core/util/datetime/FastDatePrinter.java  |   2 +
 .../log4j/core/util/datetime/FixedDateFormat.java  |   7 +-
 .../logging/log4j/core/util/datetime/Format.java   |   3 +
 .../log4j/core/util/datetime/FormatCache.java      |   2 +
 .../log4j/core/util/datetime/package-info.java     |  10 +-
 .../core/util/internal/InternalLoggerRegistry.java | 154 ++--
 .../log4j/core/util/internal/SystemUtils.java      |  28 +-
 .../util/internal/instant/InstantFormatter.java    |  30 +-
 .../internal/instant/InstantNumberFormatter.java   | 128 ++++
 .../instant/InstantPatternDynamicFormatter.java    | 826 +++++++++++++++++++++
 .../internal/instant/InstantPatternFormatter.java  | 186 +++++
 .../instant/InstantPatternLegacyFormatter.java     | 118 +++
 .../InstantPatternThreadLocalCachedFormatter.java  | 134 ++++
 .../internal/instant}/package-info.java            |  19 +-
 .../logging/log4j/core/util/package-info.java      |   2 +-
 .../log4j-core/resource-config.json                |  12 +
 log4j-fuzz-test/pom.xml                            |   9 +-
 .../logging/log4j/io/AbstractStreamTest.java       |   2 +-
 .../org/apache/logging/log4j/io/IoBuilderTest.java |   4 +-
 .../log4j/io/LoggerPrintStreamCallerInfoTest.java  |  28 +-
 .../logging/log4j/io/LoggerPrintStreamTest.java    |  18 +-
 .../log4j/io/LoggerPrintWriterCallerInfoTest.java  |  30 +-
 .../log4j/io/LoggerPrintWriterJdbcH2Test.java      |   6 +-
 .../logging/log4j/io/LoggerPrintWriterTest.java    |  18 +-
 .../.log4j-plugin-processing-activator             |   1 +
 {log4j-jakarta-smtp => log4j-jakarta-jms}/pom.xml  |  60 +-
 .../core/appender/mom/jakarta}/JmsAppender.java    |  60 +-
 .../core/appender/mom/jakarta}/JmsManager.java     |  51 +-
 .../core/appender/mom/jakarta}/package-info.java   |   7 +-
 .../appender/mom/jakarta}/JmsAppenderTest.java     |  20 +-
 .../src/test/resources/JmsJakartaAppenderTest.xml  |  35 +-
 log4j-jakarta-smtp/pom.xml                         |   6 -
 .../logging/log4j/smtp/SmtpAppenderAsyncTest.java  |  53 +-
 .../logging/log4j/smtp/SmtpAppenderTest.java       |  36 +-
 .../apache/logging/log4j/smtp/SmtpManagerTest.java |  24 +-
 .../log4j/web/appender/ServletAppender.java        |   1 +
 .../web/Log4jServletContainerInitializerTest.java  |  22 +-
 .../log4j/web/Log4jServletContextListenerTest.java |  12 +-
 .../logging/log4j/web/Log4jServletFilterTest.java  |  12 +-
 ...og4jShutdownOnContextDestroyedListenerTest.java |  10 +-
 .../log4j/web/Log4jWebInitializerImplTest.java     |  40 +-
 .../org/apache/logging/log4j/web/PropertyTest.java |   6 +-
 .../apache/logging/log4j/web/TestAsyncServlet.java |   8 +-
 .../logging/log4j/jcl/CallerInformationTest.java   |   6 +-
 .../db/jdbc/PoolableConnectionFactoryTest.java     |   4 +-
 .../db/jdbc/PoolingDriverConnectionSourceTest.java |  15 +-
 log4j-jpa/pom.xml                                  |   5 -
 .../appender/db/jpa/AbstractJpaAppenderTest.java   | 120 +--
 .../core/appender/db/jpa/JpaH2AppenderTest.java    |   7 +-
 .../appender/db/jpa/JpaHsqldbAppenderTest.java     |  35 +-
 .../core/appender/db/jpa/LogEventEntityTest.java   |  15 +-
 .../ContextDataAttributeConverterTest.java         |  38 +-
 .../ContextDataJsonAttributeConverterTest.java     |  47 +-
 .../ContextMapAttributeConverterTest.java          |  38 +-
 .../ContextMapJsonAttributeConverterTest.java      |  47 +-
 .../ContextStackAttributeConverterTest.java        |  42 +-
 .../ContextStackJsonAttributeConverterTest.java    |  56 +-
 .../converter/InstantAttributeConverterTest.java   |  43 +-
 .../converter/MarkerAttributeConverterTest.java    |  65 +-
 .../converter/MessageAttributeConverterTest.java   |  41 +-
 .../StackTraceElementAttributeConverterTest.java   | 119 ++-
 .../converter/ThrowableAttributeConverterTest.java |  51 +-
 .../logging/log4j/jpl/Log4jSystemLoggerTest.java   |  24 +-
 log4j-jul/pom.xml                                  |  72 +-
 .../org/apache/logging/log4j/jul/ApiLogger.java    |  64 +-
 .../logging/log4j/jul/test/AbstractLoggerTest.java | 143 +++-
 .../logging/log4j/jul/test/ApiLoggerTest.java      |  47 +-
 .../log4j/jul/test/AsyncLoggerThreadsTest.java     |  28 +-
 .../test/BracketInNotInterpolatedMessageTest.java  |  22 +-
 .../log4j/jul/test/CallerInformationTest.java      |  40 +-
 .../logging/log4j/jul/test/CoreLoggerTest.java     |  55 +-
 .../DefaultLevelConverterCustomJulLevelsTest.java  |  75 +-
 .../log4j/jul/test/DefaultLevelConverterTest.java  |  11 +-
 .../log4j/jul/test/JavaLevelTranslatorTest.java    |  29 +-
 .../log4j/jul/test/Log4jBridgeHandlerTest.java     |  60 +-
 .../log4j/jul/test/Log4jLevelTranslatorTest.java   |  24 +-
 .../test/resources/testResourceBundle.properties   |  13 +-
 log4j-layout-template-json-fuzz-test/pom.xml       |   2 +-
 .../json/fuzz/JsonTemplateLayoutCodecFuzzer.java   |   2 +-
 log4j-layout-template-json-test/pom.xml            |   2 +-
 .../layout/template/json/LogEventFixture.java      |  27 +-
 .../log4j/layout/template/json/package-info.java   |  22 -
 .../log4j/layout/template/json/GcpLayoutTest.java  |  44 +-
 .../log4j/layout/template/json/GelfLayoutTest.java |  22 +-
 .../JsonTemplateLayoutNullEventDelimiterTest.java  |   4 +-
 .../log4j/layout/template/json/LogstashIT.java     |   6 +-
 .../json/ThreadLocalRecyclerNestedLoggingTest.java |   4 +-
 .../json/resolver/MessageResolverTest.java         |   2 +
 .../resolver/ReadOnlyStringMapResolverTest.java    |   6 +-
 .../template/json/util/InstantFormatterTest.java   | 114 ---
 .../layout/template/json/util/JsonReaderTest.java  |   2 +-
 .../json/util/RecyclerFactoryConverterTest.java    |  16 +-
 .../json/util/RecyclerFactoryCustomConverter.java  |  63 ++
 .../template/json/JsonTemplateLayoutDefaults.java  |  38 +-
 .../template/json/resolver/ExceptionResolver.java  |   4 -
 .../json/resolver/ExceptionResolverFactory.java    |   2 +-
 .../json/resolver/ExceptionRootCauseResolver.java  |   4 -
 .../ExceptionRootCauseResolverFactory.java         |   2 +-
 .../json/resolver/StackTraceStringResolver.java    |   6 +-
 .../template/json/resolver/TimestampResolver.java  | 269 ++-----
 .../template/json/util/InstantFormatter.java       |   3 +
 .../template/json/util/RecyclerFactories.java      |   4 +
 .../src/main/resources/GcpLayout.json              |  38 +-
 .../resource-config.json                           |   9 +
 log4j-mongodb/pom.xml                              |   4 +-
 .../logging/log4j/mongodb/MongoDbProvider.java     |  43 +-
 .../apache/logging/log4j/mongodb/package-info.java |   2 +-
 .../log4j/mongodb/AbstractMongoDbCappedIT.java     |  12 +-
 .../log4j/mongodb/MongoDbAuthFailureIT.java        |   1 -
 .../log4j/mongodb/MongoDbCollectionNameIT.java     |  19 +-
 .../MongoDbDatabaseAndCollectionNameIT.java        |  19 +-
 .../logging/log4j/mongodb/MongoDbMapMessageIT.java |  14 +-
 .../MongoDbNoDatabaseAndCollectionNameIT.java      |  20 +-
 .../logging/log4j/mongodb/MongoDbResolver.java     |   4 +-
 .../src/test/resources/MongoDbCollectionNameIT.xml |  14 +-
 .../MongoDbDatabaseAndCollectionNameIT.xml         |  16 +-
 .../MongoDbNoDatabaseAndCollectionNameIT.xml       |  30 +-
 log4j-mongodb4/pom.xml                             |  19 +-
 .../logging/log4j/mongodb4/MongoDb4Connection.java |  30 +-
 .../logging/log4j/mongodb4/MongoDb4Provider.java   | 157 +++-
 .../logging/log4j/mongodb4/package-info.java       |   2 +-
 .../log4j/mongodb4/AbstractMongoDb4CappedIT.java   |  18 +-
 .../log4j/mongodb4/MongoDb4AuthFailureIT.java      |   1 -
 .../log4j/mongodb4/MongoDb4CollectionNameIT.java   |  19 +-
 .../MongoDb4DatabaseAndCollectionNameIT.java       |  19 +-
 .../log4j/mongodb4/MongoDb4MapMessageIT.java       |  14 +-
 .../log4j/mongodb4/MongoDb4ProviderTest.java       | 116 +++
 .../logging/log4j/mongodb4/MongoDb4Resolver.java   |   6 +-
 .../test/resources/MongoDb4CollectionNameIT.xml    |  29 +-
 .../MongoDb4DatabaseAndCollectionNameIT.xml        |  15 +-
 log4j-osgi-test/pom.xml                            |  45 ++
 .../log4j/osgi/tests/AbstractLoadBundleTest.java   |  44 +-
 .../logging/log4j/osgi/tests/DisruptorTest.java    |  84 +++
 .../osgi/tests/{OsgiRule.java => OsgiExt.java}     |  17 +-
 log4j-parent/pom.xml                               | 161 ++--
 log4j-perf-test/README.adoc                        |  31 +-
 log4j-perf-test/pom.xml                            |  17 +-
 .../logging/log4j/ThrowVsReturnBenchmark.java      |  78 ++
 .../template/json/JsonTemplateLayoutBenchmark.java |   2 +-
 .../json/JsonTemplateLayoutBenchmarkReport.java    |   2 +-
 .../log4j/message/ParameterFormatterBenchmark.java |  27 +-
 ...bstractStringLayoutStringEncodingBenchmark.java |   2 -
 .../perf/jmh/AnnotationVsMarkerInterface.java      |  11 -
 .../perf/jmh/AsyncAppenderLog4j1Benchmark.java     |  11 -
 .../jmh/AsyncAppenderLog4j1LocationBenchmark.java  |  11 -
 .../perf/jmh/AsyncAppenderLog4j2Benchmark.java     |  11 -
 .../jmh/AsyncAppenderLog4j2LocationBenchmark.java  |  11 -
 .../perf/jmh/AsyncAppenderLogbackBenchmark.java    |  11 -
 .../jmh/AsyncAppenderLogbackLocationBenchmark.java |  12 -
 .../log4j/perf/jmh/AsyncLoggersBenchmark.java      |  11 -
 .../perf/jmh/AsyncLoggersLocationBenchmark.java    |  11 -
 .../logging/log4j/perf/jmh/ClocksBenchmark.java    |  11 -
 .../log4j/perf/jmh/CollectionsBenchmark.java       |  11 -
 .../perf/jmh/ConfiguratorInitializeBenchmark.java  |   2 -
 .../log4j/perf/jmh/DateTimeFormatBenchmark.java    | 117 ---
 .../log4j/perf/jmh/DebugDisabledBenchmark.java     |   2 -
 .../log4j/perf/jmh/FileAppenderBenchmark.java      |   5 -
 .../perf/jmh/FileAppenderParamsBenchmark.java      |   2 -
 .../perf/jmh/FileAppenderThrowableBenchmark.java   |   2 -
 .../jmh/FileAppenderWithLocationBenchmark.java     |   5 -
 .../log4j/perf/jmh/FormatterLoggerBenchmark.java   |   8 -
 .../log4j/perf/jmh/GelfLayoutBenchmark.java        |   2 -
 .../log4j/perf/jmh/InstantFormatBenchmark.java     |   1 +
 .../log4j/perf/jmh/JdbcAppenderBenchmark.java      |   7 -
 .../log4j/perf/jmh/JpaAppenderBenchmark.java       |   7 -
 .../jmh/Log4j2AppenderComparisonBenchmark.java     |   5 -
 .../log4j/perf/jmh/Log4jLogEventBenchmark.java     |  12 -
 .../perf/jmh/LogBuilderMarkerFilterBenchmark.java  |  21 -
 .../log4j/perf/jmh/LoggerConfigBenchmark.java      |  11 -
 .../log4j/perf/jmh/LoggingDisabledBenchmark.java   |  16 -
 .../logging/log4j/perf/jmh/MDCFilterBenchmark.java |   7 -
 .../log4j/perf/jmh/MarkerFilterBenchmark.java      |   5 -
 .../log4j/perf/jmh/MemoryHandlerJULBenchmark.java  |  11 -
 .../jmh/MemoryHandlerJULLocationBenchmark.java     |  11 -
 .../perf/jmh/NamePatternConverterBenchmark.java    |  13 +-
 .../logging/log4j/perf/jmh/NanotimeBenchmark.java  |  11 -
 .../logging/log4j/perf/jmh/OutputBenchmark.java    |   5 -
 .../perf/jmh/ParameterizedMessageBenchmark.java    |  13 -
 .../jmh/ParameterizedMessageInliningBenchmark.java |  13 -
 .../log4j/perf/jmh/PatternLayoutBenchmark.java     |  10 -
 .../perf/jmh/PatternLayoutComparisonBenchmark.java |   8 -
 .../log4j/perf/jmh/ReflectionBenchmark.java        |  15 +-
 .../logging/log4j/perf/jmh/SimpleBenchmark.java    |   7 -
 .../perf/jmh/SortedArrayVsHashMapBenchmark.java    |  11 -
 .../logging/log4j/perf/jmh/StackWalkBenchmark.java |  11 -
 .../perf/jmh/StringBuilderEscapeBenchmark.java     |   7 -
 .../log4j/perf/jmh/StringEncodingBenchmark.java    |  11 -
 .../log4j/perf/jmh/TextEncoderHelperBenchmark.java |  11 -
 .../log4j/perf/jmh/ThreadContextBenchmark.java     |  12 -
 .../log4j/perf/jmh/ThreadContextBenchmark2.java    |  10 -
 .../ThreadLocalVsConcurrentHashMapBenchmark.java   |  13 -
 .../log4j/perf/jmh/ThreadLocalVsPoolBenchmark.java |  12 -
 .../perf/jmh/ThreadsafeDateFormatBenchmark.java    |  11 -
 .../log4j/perf/jmh/TimeFormatBenchmark.java        | 310 --------
 .../logging/log4j/perf/jmh/UnboxBenchmark.java     |  14 -
 .../log4j/perf/jmh/UuidGeneratorBenchmark.java     |   7 -
 .../logging/log4j/perf/jmh/VarargsBenchmark.java   |  11 -
 ...PatternDynamicFormatterSequencingBenchmark.java |  96 +++
 .../instant/InstantPatternFormatterBenchmark.java  | 215 ++++++
 .../InstantPatternFormatterImpactBenchmark.java    | 187 +++++
 .../logging/log4j/perf/jmh/package-info.java       |  23 -
 .../logging/log4j/perf/nogc/OpenHashStringMap.java |  46 +-
 .../org/apache/logging/log4j/perf/nogc/Test.java   | 116 ---
 log4j-slf4j-impl/pom.xml                           |   5 -
 .../org/apache/logging/slf4j/package-info.java     |   4 +-
 .../logging/other/pkg/LoggerContextAnchorTest.java |  12 +-
 .../logging/slf4j/CallerInformationTest.java       |  33 +-
 .../org/apache/logging/slf4j/Log4j1222Test.java    |  13 +-
 .../org/apache/logging/slf4j/Log4jMarkerTest.java  |  24 +-
 .../apache/logging/slf4j/LoggerContextTest.java    |  13 +-
 .../java/org/apache/logging/slf4j/LoggerTest.java  |  69 +-
 .../java/org/apache/logging/slf4j/MarkerTest.java  |  75 +-
 .../org/apache/logging/slf4j/OptionalTest.java     |  41 +-
 .../org/apache/logging/slf4j/OverflowTest.java     |   8 +-
 .../org/apache/logging/slf4j/SerializeTest.java    |  15 +-
 .../ThrowableConsumingMessageFactoryTest.java      |   4 +-
 log4j-slf4j2-impl/pom.xml                          |  33 +-
 .../logging/other/pkg/LoggerContextAnchorTest.java |  12 +-
 .../logging/slf4j/CallerInformationTest.java       |  41 +-
 .../org/apache/logging/slf4j/Log4j1222Test.java    |  13 +-
 .../logging/slf4j/Log4jEventBuilderTest.java       |   8 +-
 .../apache/logging/slf4j/Log4jMDCAdapterTest.java  |   4 +-
 .../org/apache/logging/slf4j/Log4jMarkerTest.java  |  24 +-
 .../apache/logging/slf4j/LoggerContextTest.java    |  13 +-
 .../java/org/apache/logging/slf4j/LoggerTest.java  |  77 +-
 .../java/org/apache/logging/slf4j/MarkerTest.java  |  75 +-
 .../org/apache/logging/slf4j/OverflowTest.java     |   8 +-
 .../org/apache/logging/slf4j/SerializeTest.java    |  15 +-
 .../ThrowableConsumingMessageFactoryTest.java      |   4 +-
 .../spring/boot/Log4j2SpringBootLoggingSystem.java |   6 +-
 .../spring/boot/Log4j2SpringBootInitTest.java      |   6 +-
 .../boot/Log4j2SpringBootLoggingSystemTest.java    |  13 +-
 .../log4j/spring/boot/SpringLookupTest.java        |   6 +-
 .../log4j/spring/boot/SpringProfileTest.java       |   2 +-
 log4j-spring-cloud-config-client/pom.xml           |   2 +-
 .../config/client/Log4j2EventListenerTest.java     |   2 +-
 log4j-taglib/pom.xml                               |   5 -
 .../logging/log4j/taglib/CatchingTagTest.java      |  45 +-
 .../apache/logging/log4j/taglib/DumpTagTest.java   |  40 +-
 .../apache/logging/log4j/taglib/EnterTagTest.java  |  36 +-
 .../log4j/taglib/ExceptionAwareTagSupportTest.java |  24 +-
 .../apache/logging/log4j/taglib/ExitTagTest.java   |  37 +-
 .../logging/log4j/taglib/IfEnabledTagTest.java     |  39 +-
 .../apache/logging/log4j/taglib/LogTagTest.java    |  24 +-
 .../log4j/taglib/LoggerAwareTagSupportTest.java    |  84 +--
 .../log4j/taglib/LoggingMessageTagSupportTest.java |  94 +--
 .../logging/log4j/taglib/SetLoggerTagTest.java     | 138 ++--
 .../apache/logging/log4j/taglib/TagLevelTest.java  |  45 +-
 .../logging/log4j/taglib/TagUtilsLevelTest.java    |  27 +-
 .../logging/log4j/taglib/TagUtilsScopeTest.java    |  24 +-
 .../org/apache/logging/log4j/tojul/JULLogger.java  |   4 +-
 .../apache/logging/log4j/tojul/JULLoggerTest.java  |   4 +-
 .../org/apache/logging/log4j/tojul/LoggerTest.java |  42 +-
 log4j-to-slf4j/pom.xml                             |   7 +-
 .../logging/slf4j/CallerInformationTest.java       |  16 +-
 .../apache/logging/slf4j/Log4j2Jira1688Test.java   |   4 +-
 .../org/apache/logging/slf4j/LogBuilderTest.java   |   4 +-
 .../logging/slf4j/LoggerContextResolver.java       |   4 +-
 .../org/apache/logging/slf4j/LoggerResolver.java   |   4 +-
 .../java/org/apache/logging/slf4j/LoggerTest.java  |  70 +-
 .../apache/logging/slf4j/MDCContextMapTest.java    |   3 +-
 .../org/apache/logging/slf4j/MDCTestHelper.java    |  24 +-
 .../log4j/web/appender/ServletAppender.java        |   1 +
 .../web/Log4jServletContainerInitializerTest.java  |  20 +-
 .../log4j/web/Log4jServletContextListenerTest.java |  12 +-
 .../logging/log4j/web/Log4jServletFilterTest.java  |  12 +-
 ...og4jShutdownOnContextDestroyedListenerTest.java |   8 +-
 .../log4j/web/Log4jWebInitializerImplTest.java     |  40 +-
 .../org/apache/logging/log4j/web/PropertyTest.java |   6 +-
 .../logging/log4j/web/ServletAppenderTest.java     |   4 +-
 .../apache/logging/log4j/web/TestAsyncServlet.java |   8 +-
 .../apache/logging/log4j/web/WebLookupTest.java    |   6 +-
 mvnw                                               |   2 +-
 oss-fuzz-build.sh                                  |   8 -
 package.json                                       |   2 +-
 pom.xml                                            |  48 +-
 src/changelog/.2.x.x/.release-notes.adoc.ftl       |   6 +-
 src/changelog/.index.adoc.ftl                      |   2 +-
 src/changelog/2.0.1/.release-notes.adoc.ftl        |   2 +-
 src/changelog/2.0.2/.release-notes.adoc.ftl        |   2 +-
 src/changelog/2.0/.release-notes.adoc.ftl          |   6 +-
 src/changelog/2.1/.release-notes.adoc.ftl          |   2 +-
 src/changelog/2.15.0/.release-notes.adoc.ftl       |   2 +-
 src/changelog/2.16.0/.release-notes.adoc.ftl       |   2 +-
 src/changelog/2.17.0/.release-notes.adoc.ftl       |   2 +-
 src/changelog/2.17.1/.release-notes.adoc.ftl       |   2 +-
 src/changelog/2.17.2/.release-notes.adoc.ftl       |   2 +-
 src/changelog/2.18.0/.release-notes.adoc.ftl       |   2 +-
 src/changelog/2.19.0/.release-notes.adoc.ftl       |   2 +-
 src/changelog/2.2/.release-notes.adoc.ftl          |   2 +-
 src/changelog/2.20.0/.release-notes.adoc.ftl       |   2 +-
 src/changelog/2.21.0/.release-notes.adoc.ftl       |   6 +-
 src/changelog/2.21.1/.release-notes.adoc.ftl       |   6 +-
 .../2.23.0/add_support_for_disruptor_4.xml         |   2 +-
 .../2.23.1/fix_StatusLogger_instant_formatting.xml |   4 +-
 src/changelog/2.24.0/.release-notes.adoc.ftl       |   4 +-
 .../2.24.3/3239_npe_fix_regex_filter_creator.xml   |  11 +
 src/changelog/2.25.0/.release-notes.adoc.ftl       |  76 ++
 .../changelog/2.25.0/.release.xml                  |  11 +-
 .../1736_split_jansi_support.xml}                  |   6 +-
 .../2229_mongodb_docker.xml}                       |   6 +-
 .../2295_add_JMS_Jakarta_Appender.xml}             |   6 +-
 ...x_RollingFileManager_unsuccessful_rollover.xml} |   8 +-
 ...91_change_PatternLayout_exception_rendering.xml |   9 +
 .../2.25.0/2691_deprecate_ThrowableProxy.xml       |   9 +
 .../2691_fix_PatternLayout_exception_rendering.xml |  11 +
 src/changelog/2.25.0/2767_reload_key_stores.xml    |   9 +
 .../2.25.0/2767_simplify_SSL_config_logic.xml      |   9 +
 .../2769_pluginAttribute_publicSetterWarning.xml}  |   8 +-
 .../2916_rewrite_jansi_renderer.xml}               |   6 +-
 ...precate_AbstractLogger_checkMessageFactory.xml} |   6 +-
 .../2937-http-watcher.xml}                         |   6 +-
 .../2942_fix_ThreadContext_putAll.xml}             |   6 +-
 .../2949_add_fuzzing.xml}                          |   4 +-
 .../3011_http_appender_validation.xml}             |   6 +-
 .../3030_fix_log4j1_getLogger.xml}                 |   6 +-
 .../3045_change_PatternLayout_prefix.xml}          |   6 +-
 .../3045_fix_PatternLayout_rEx_property.xml}       |   6 +-
 .../3045_remove_PatternLayout_ex_ansi.xml}         |   6 +-
 .../3048_fix_ThreadContext_remove.xml}             |   6 +-
 .../3053_graalvm_processor.xml}                    |   6 +-
 .../3056_android_support.xml}                      |   6 +-
 src/changelog/2.25.0/3066_fix_bom.xml              |   9 +
 .../2.25.0/3074_monitor_additional_files.xml       |   9 +
 .../3085_fix_log4j_1_priority.xml}                 |   6 +-
 src/changelog/2.25.0/3118_default_layout.xml       |  11 +
 .../3119_set_level_call_parent.xml}                |   8 +-
 .../3121_deprecate_FixedDateFormat.xml}            |   6 +-
 src/changelog/2.25.0/3121_instant_format.xml       |   9 +
 ...123_change_PatternLayout_exception_renderer.xml |   8 +
 ...27_JDBC_appender_IOException_stream_closed.xml} |   6 +-
 .../3143_logger_registry.xml}                      |   8 +-
 .../3149_change_StatusData_prefix.xml}             |   6 +-
 ...1_fix_mongodb_appender_deprecation_warning.xml} |   6 +-
 .../3153_fix_StringMatchFilter_guardNPE.xml}       |   6 +-
 ...ix_AsyncWaitStrategyFactoryConfig_guardNPE.xml} |   6 +-
 .../3206_fix_rootLogger_shorthand_npe.xml}         |  10 +-
 .../3212_fix_JTL_StackTraceStringResolver.xml}     |   6 +-
 .../3215_fix-RegexReplacement.xml}                 |   8 +-
 src/changelog/2.25.0/3217_precise_clock.xml        |  10 +
 .../3257_fix_AsyncAppender_requiresLocation.xml}   |   6 +-
 ...3257_fix_FailoverAppender_requiresLocation.xml} |   6 +-
 .../3300_fix-javadoc.xml}                          |   8 +-
 .../3359_fix-javadoc.xml}                          |   8 +-
 ...3369_fix_typo_in_RootLogger_Builder_method.xml} |   7 +-
 .../3398_fix_JTL_RecyclerFactoryConverter.xml}     |   6 +-
 .../3399_logger_registry.xml}                      |   8 +-
 ..._InternalLoggerRegistry_stale_entry_expunge.xml |  13 +
 .../3431_default_config_name.xml}                  |   8 +-
 .../3437_transtive_compile_only_dependencies.xml   |  11 +
 .../3467_add_mongodb_conn_db_name.xml}             |   4 +-
 .../3508_LoggerContext_shutdownDisable.xml}        |  10 +-
 .../3562_StatusData_ArrayIndexOutOfBounds.xml}     |   8 +-
 src/changelog/2.25.0/3586_improve_GcpLayout.xml    |  10 +
 .../3601_deprecate_or_remove_hiding_methods.xml}   |   8 +-
 ...e_optimization_for_filling_the_stack_trace.xml} |   8 +-
 .../3645_speedup_array_logging.xml}                |   8 +-
 ...g_stack_traces_in_ExtendedThreadInformation.xml |  10 +
 .../3665_fix_StatusLogger_writing_to_stdout.xml}   |   8 +-
 ...3669_generalize_ReadOnlyStringMap_equality.xml} |   8 +-
 ...il_base64_directly_instead_of_reflectively.xml} |   6 +-
 .../3706_osgi-disruptor.xml}                       |   6 +-
 .../fix_JsonWriter_surrogate_handling.xml}         |   5 +-
 .../throwable-proxy-clean-up.xml}                  |   7 +-
 .../update_actions_stale.xml}                      |   6 +-
 .../update_ch_qos_logback_logback_core.xml}        |   6 +-
 .../update_com_fasterxml_jackson_jackson_bom.xml}  |   6 +-
 ...e_com_github_spotbugs_spotbugs_annotations.xml} |   6 +-
 .../update_io_fabric8_docker_maven_plugin.xml}     |   6 +-
 .../update_org_apache_cassandra_cassandra_all.xml} |   6 +-
 .../update_org_apache_commons_commons_csv.xml}     |   6 +-
 .../update_org_apache_commons_commons_dbcp2.xml}   |   6 +-
 .../update_org_apache_commons_commons_pool2.xml}   |   6 +-
 .../update_org_apache_kafka_kafka_clients.xml}     |   6 +-
 .../update_org_apache_logging_logging_parent.xml}  |   5 +-
 .../update_org_apache_tomcat_tomcat_juli.xml}      |   6 +-
 .../update_org_eclipse_jetty_jetty_util.xml}       |   6 +-
 .../update_org_jmdns_jmdns.xml}                    |   6 +-
 .../update_org_mongodb_bson.xml}                   |   6 +-
 .../update_org_slf4j_slf4j_api.xml}                |   6 +-
 ...springframework_cloud_spring_cloud_context.xml} |   6 +-
 src/changelog/2.3/.release-notes.adoc.ftl          |   2 +-
 src/changelog/2.4.1/.release-notes.adoc.ftl        |   2 +-
 src/changelog/2.4/.release-notes.adoc.ftl          |   2 +-
 src/site/antora/antora.tmpl.yml                    |   1 -
 src/site/antora/antora.yml                         |   1 -
 .../appenders/database/nosql-mongo-keys.json       |   4 +-
 .../appenders/database/nosql-mongo-keys.properties |   4 +-
 .../manual/appenders/database/nosql-mongo-keys.xml |   4 +-
 .../appenders/database/nosql-mongo-keys.yaml       |   4 +-
 .../manual/appenders/database/nosql-mongo.json     |   4 +-
 .../appenders/database/nosql-mongo.properties      |   4 +-
 .../manual/appenders/database/nosql-mongo.xml      |   4 +-
 .../manual/appenders/database/nosql-mongo.yaml     |   4 +-
 .../manual/configuration/main-elements.yaml        |  10 +-
 .../manual/configuration/monitor-resources.json    |  15 +
 .../configuration/monitor-resources.properties     |  17 +-
 .../monitor-resources.xml}                         |  21 +-
 .../manual/configuration/monitor-resources.yaml    |  17 +-
 src/site/antora/modules/ROOT/nav.adoc              |   1 +
 .../antora/modules/ROOT/pages/development.adoc     |   8 +-
 src/site/antora/modules/ROOT/pages/faq.adoc        |  52 ++
 src/site/antora/modules/ROOT/pages/graalvm.adoc    | 128 ++++
 .../modules/ROOT/pages/manual/appenders.adoc       |  43 +-
 .../ROOT/pages/manual/appenders/database.adoc      |  32 +-
 .../ROOT/pages/manual/appenders/message-queue.adoc |  39 +-
 .../modules/ROOT/pages/manual/architecture.adoc    |   8 +-
 .../antora/modules/ROOT/pages/manual/async.adoc    |  54 +-
 .../modules/ROOT/pages/manual/configuration.adoc   |  59 ++
 .../modules/ROOT/pages/manual/garbagefree.adoc     |   2 +
 .../modules/ROOT/pages/manual/installation.adoc    |  36 +-
 .../ROOT/pages/manual/json-template-layout.adoc    |   7 +
 .../antora/modules/ROOT/pages/manual/messages.adoc |   2 +-
 .../modules/ROOT/pages/manual/pattern-layout.adoc  | 228 +++---
 .../antora/modules/ROOT/pages/manual/plugins.adoc  |  45 +-
 .../ROOT/pages/manual/systemproperties.adoc        |   7 -
 .../antora/modules/ROOT/pages/release-notes.adoc   |   6 +
 .../properties-context-selector.adoc               |   6 +-
 .../manual/systemproperties/properties-jansi.adoc  |  32 -
 .../properties-log4j-core-misc.adoc                |  35 +-
 1214 files changed, 19322 insertions(+), 14314 deletions(-)

diff --cc 
log4j-api-test/src/test/java/org/apache/logging/log4j/internal/map/UnmodifiableArrayBackedMapTest.java
index 092c082ed4,612840bbf5..48befed7f9
--- 
a/log4j-api-test/src/test/java/org/apache/logging/log4j/internal/map/UnmodifiableArrayBackedMapTest.java
+++ 
b/log4j-api-test/src/test/java/org/apache/logging/log4j/internal/map/UnmodifiableArrayBackedMapTest.java
@@@ -369,28 -370,28 +370,47 @@@ class UnmodifiableArrayBackedMapTest 
      }
  
      @Test
-     public void testToMap() {
+     void testToMap() {
          UnmodifiableArrayBackedMap map = 
UnmodifiableArrayBackedMap.EMPTY_MAP.copyAndPut("test", "test");
          // verify same instance, not just equals()
-         assertTrue(map == map.toMap());
+         assertSame(map, map.toMap());
+     }
+ 
+     @Test
+     void copyAndRemoveAll_should_work() {
+ 
+         // Create the actual map
+         UnmodifiableArrayBackedMap actualMap = 
UnmodifiableArrayBackedMap.EMPTY_MAP;
+         actualMap = actualMap.copyAndPut("outer", "two");
+         actualMap = actualMap.copyAndPut("inner", "one");
+         actualMap = actualMap.copyAndPut("not-in-closeable", "true");
+ 
+         // Create the expected map
+         UnmodifiableArrayBackedMap expectedMap = 
UnmodifiableArrayBackedMap.EMPTY_MAP;
+         expectedMap = expectedMap.copyAndPut("outer", "two");
+         expectedMap = expectedMap.copyAndPut("not-in-closeable", "true");
+ 
+         // Remove the key and verify
+         actualMap = 
actualMap.copyAndRemoveAll(Collections.singleton("inner"));
+         Assertions.assertThat(actualMap).isEqualTo(expectedMap);
      }
 +
 +    @Test
 +    void copyAndRemoveAll_should_work() {
 +
 +        // Create the actual map
 +        UnmodifiableArrayBackedMap actualMap = 
UnmodifiableArrayBackedMap.EMPTY_MAP;
 +        actualMap = actualMap.copyAndPut("outer", "two");
 +        actualMap = actualMap.copyAndPut("inner", "one");
 +        actualMap = actualMap.copyAndPut("not-in-closeable", "true");
 +
 +        // Create the expected map
 +        UnmodifiableArrayBackedMap expectedMap = 
UnmodifiableArrayBackedMap.EMPTY_MAP;
 +        expectedMap = expectedMap.copyAndPut("outer", "two");
 +        expectedMap = expectedMap.copyAndPut("not-in-closeable", "true");
 +
 +        // Remove the key and verify
 +        actualMap = 
actualMap.copyAndRemoveAll(Collections.singleton("inner"));
 +        Assertions.assertThat(actualMap).isEqualTo(expectedMap);
 +    }
  }
diff --cc 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
index 4b160f98ef,4c3dde9179..0f2eebcb70
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
@@@ -17,10 -17,11 +17,9 @@@
  package org.apache.logging.log4j.core.config;
  
  import java.io.ByteArrayOutputStream;
 -import java.io.File;
  import java.io.IOException;
  import java.io.InputStream;
- import java.io.Serializable;
  import java.lang.ref.WeakReference;
 -import java.net.URI;
  import java.util.ArrayList;
  import java.util.Arrays;
  import java.util.Collection;

Reply via email to