This is an automated email from the ASF dual-hosted git repository. vy pushed a commit to branch 2.x in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit dd4a88ac2e744440565e5903a9a397f5f82cacfe Author: Volkan Yazıcı <[email protected]> AuthorDate: Wed Nov 1 10:13:50 2023 +0100 Fix MDC pattern converter causing issues for `%notEmpty` (#1922) --- .../core/pattern/VariablesNotEmptyReplacementConverterTest.java | 7 ++++++- .../apache/logging/log4j/core/pattern/MdcPatternConverter.java | 2 +- src/changelog/.2.x.x/fix_MDC_pattern_converter_for_notEmpty.xml | 8 ++++++++ src/site/_release-notes/_2.x.x.adoc | 1 + 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/VariablesNotEmptyReplacementConverterTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/VariablesNotEmptyReplacementConverterTest.java index df4b9c2f81..48a2c6c13b 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/VariablesNotEmptyReplacementConverterTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/VariablesNotEmptyReplacementConverterTest.java @@ -68,9 +68,14 @@ public class VariablesNotEmptyReplacementConverterTest { testReplacement("%mdc", ""); } + @Test + void MDC_with_non_existent_key_should_be_replaced() { + testReplacement("foo=%mdc{noSuchKey1}", ""); + } + @Test void MDC_with_non_existent_keys_should_be_replaced() { - testReplacement("%mdc{noSuchKey1,noSuchKey2}", ""); + testReplacement("foo=%mdc{noSuchKey1,noSuchKey2}", ""); } private void testReplacement(final String tag, final String expectedValue) { diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java index 5fc711e63e..fdc15cbae2 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java @@ -146,7 +146,7 @@ public final class MdcPatternConverter extends LogEventPatternConverter { @Override public String emptyVariableOutput() { - return "{}"; + return key == null ? "{}" : ""; } } diff --git a/src/changelog/.2.x.x/fix_MDC_pattern_converter_for_notEmpty.xml b/src/changelog/.2.x.x/fix_MDC_pattern_converter_for_notEmpty.xml new file mode 100644 index 0000000000..83250de748 --- /dev/null +++ b/src/changelog/.2.x.x/fix_MDC_pattern_converter_for_notEmpty.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns="http://logging.apache.org/log4j/changelog" + xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.2.xsd" + type="changed"> + <issue id="1922" link="https://github.com/apache/logging-log4j2/issues/1922"/> + <description format="asciidoc">Fix MDC pattern converter causing issues for `%notEmpty`</description> +</entry> diff --git a/src/site/_release-notes/_2.x.x.adoc b/src/site/_release-notes/_2.x.x.adoc index 8e3c031b30..8610d9dcda 100644 --- a/src/site/_release-notes/_2.x.x.adoc +++ b/src/site/_release-notes/_2.x.x.adoc @@ -47,6 +47,7 @@ The module name of four bridges (`log4j-slf4j-impl`, `log4j-slf4j2-impl`, `log4j === Changed * Change the order of evaluation of `FormattedMessage` formatters. Messages are evaluated using `java.util.Format` only if they don't comply to the `java.text.MessageFormat` or `ParameterizedMessage` format. (https://github.com/apache/logging-log4j2/issues/1223[1223]) +* Fix MDC pattern converter causing issues for `%notEmpty` (https://github.com/apache/logging-log4j2/issues/1922[1922]) * Fix `NotSerializableException` when `Logger` is serialized with a `ReusableMessageFactory`. (https://github.com/apache/logging-log4j2/issues/1884[1884]) * Update `com.fasterxml.jackson:jackson-bom` to version `2.15.3` (https://github.com/apache/logging-log4j2/pull/1894[1894]) * Update `com.github.luben:zstd-jni` to version `1.5.5-8` (https://github.com/apache/logging-log4j2/pull/1935[1935])
