From de16d437c8594936102217e449669ce3e2a5c2e7 Mon Sep 17 00:00:00 2001 From: Vasily Pelikh <2010720+vpelikh@users.noreply.github.com> Date: Fri, 26 Jun 2026 09:45:55 +0300 Subject: [PATCH 1/2] Fix RegexFilter NPE when useRawMsg is null (#3265) Avoid NPE when unboxing a null Boolean by using Boolean.TRUE.equals(). Signed-off-by: Vasily Pelikh <2010720+vpelikh@users.noreply.github.com> --- .../apache/logging/log4j/core/filter/RegexFilterTest.java | 8 ++++++++ .../org/apache/logging/log4j/core/filter/RegexFilter.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/filter/RegexFilterTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/filter/RegexFilterTest.java index a3e8bf3d025..9a1915f662b 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/filter/RegexFilterTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/filter/RegexFilterTest.java @@ -18,6 +18,7 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertSame; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -110,4 +111,11 @@ public void testParameterizedMsg() throws Exception { final Result fmtResult = fmtFilter.filter(null, null, null, msg, params); assertThat(fmtResult, equalTo(Result.ACCEPT)); } + + @Test + void testRegexFilterDoesNotThrowWithAllTheParametersExceptRegexEqualNull() { + assertDoesNotThrow(() -> { + RegexFilter.createFilter(".* test .*", null, null, null, null); + }); + } } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/RegexFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/RegexFilter.java index 400bd42e01e..28840a0124d 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/RegexFilter.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/RegexFilter.java @@ -139,7 +139,7 @@ public static RegexFilter createFilter( LOGGER.error("A regular expression must be provided for RegexFilter"); return null; } - return new RegexFilter(useRawMsg, Pattern.compile(regex, toPatternFlags(patternFlags)), onMatch, onMismatch); + return new RegexFilter(Boolean.TRUE.equals(useRawMsg), Pattern.compile(regex, toPatternFlags(patternFlags)), onMatch, onMismatch); } private static int toPatternFlags(final String[] patternFlags) From 68976393f5392b7ce549b772f114bc4b85135273 Mon Sep 17 00:00:00 2001 From: Ramanathan Date: Thu, 16 Jul 2026 14:51:45 +0530 Subject: [PATCH 2/2] Apply spotless formatting --- .../org/apache/logging/log4j/core/filter/RegexFilter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/RegexFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/RegexFilter.java index 28840a0124d..60890f0ff8f 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/RegexFilter.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/RegexFilter.java @@ -139,7 +139,11 @@ public static RegexFilter createFilter( LOGGER.error("A regular expression must be provided for RegexFilter"); return null; } - return new RegexFilter(Boolean.TRUE.equals(useRawMsg), Pattern.compile(regex, toPatternFlags(patternFlags)), onMatch, onMismatch); + return new RegexFilter( + Boolean.TRUE.equals(useRawMsg), + Pattern.compile(regex, toPatternFlags(patternFlags)), + onMatch, + onMismatch); } private static int toPatternFlags(final String[] patternFlags)