From 3b36f07f5a1d6c754d7f8044f01b4b063f23206a Mon Sep 17 00:00:00 2001 From: Hashim Khan Date: Mon, 27 Jul 2026 15:46:45 +0500 Subject: [PATCH 1/2] Add missing RootLogger.Builder withFilter alias RootLogger.Builder still lacked the correctly spelled withFilter method that LoggerConfig.Builder already exposes. Keep withtFilter as a deprecated wrapper and add a unit test covering both aliases. Fixes #3369 --- .../log4j/core/config/LoggerConfigTest.java | 18 ++++++++++++++++++ .../log4j/core/config/LoggerConfig.java | 6 ++++++ ...add_missing_RootLogger_withFilter_alias.xml | 13 +++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 src/changelog/.2.x.x/3369_add_missing_RootLogger_withFilter_alias.xml diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/LoggerConfigTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/LoggerConfigTest.java index b25ef14a48b..c07a5a8e91b 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/LoggerConfigTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/LoggerConfigTest.java @@ -159,4 +159,22 @@ void testLevelAndRefsWithoutAppenderRef() { assertNotNull(loggerConfig.getAppenderRefs()); assertTrue(loggerConfig.getAppenderRefs().isEmpty()); } + + @Test + @SuppressWarnings("deprecation") + void testRootLoggerBuilderWithFilterAlias() { + final Filter filter = mock(Filter.class); + final LoggerConfig viaTypo = LoggerConfig.RootLogger.newRootBuilder() + .setConfig(new NullConfiguration()) + .withtFilter(filter) + .build(); + final LoggerConfig viaAlias = LoggerConfig.RootLogger.newRootBuilder() + .setConfig(new NullConfiguration()) + .withFilter(filter) + .build(); + assertSame(filter, viaTypo.getFilter()); + assertSame(filter, viaAlias.getFilter()); + } + + } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java index 12b0b2f0abb..e9d7caf9cd9 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java @@ -1136,6 +1136,12 @@ public B withtFilter(final Filter filter) { return setFilter(filter); } + /** @deprecated since 2.25.0. Use {@link #setFilter(Filter)} instead. */ + @Deprecated + public B withFilter(final Filter filter) { + return setFilter(filter); + } + @Override public LoggerConfig build() { final LevelAndRefs container = LoggerConfig.getLevelAndRefs(level, refs, levelAndRefs, config); diff --git a/src/changelog/.2.x.x/3369_add_missing_RootLogger_withFilter_alias.xml b/src/changelog/.2.x.x/3369_add_missing_RootLogger_withFilter_alias.xml new file mode 100644 index 00000000000..eb91321d6e7 --- /dev/null +++ b/src/changelog/.2.x.x/3369_add_missing_RootLogger_withFilter_alias.xml @@ -0,0 +1,13 @@ + + + + + Add the missing `LoggerConfig.RootLogger.Builder#withFilter(Filter)` alias so it matches + `LoggerConfig.Builder`, and keep the misspelled `withtFilter` method as a deprecated wrapper. + + From b39499e695b8ab8b7680e3fe5c607cee79a45a07 Mon Sep 17 00:00:00 2001 From: Ramanathan Date: Tue, 28 Jul 2026 18:16:53 +0530 Subject: [PATCH 2/2] Fix BND baseline by bumping package version, align Javadoc, and update changelog --- .../apache/logging/log4j/core/config/LoggerConfigTest.java | 2 -- .../org/apache/logging/log4j/core/config/LoggerConfig.java | 4 +++- .../org/apache/logging/log4j/core/config/package-info.java | 2 +- .../.2.x.x/3369_add_missing_RootLogger_withFilter_alias.xml | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/LoggerConfigTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/LoggerConfigTest.java index c07a5a8e91b..d57b1cf64f3 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/LoggerConfigTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/LoggerConfigTest.java @@ -175,6 +175,4 @@ void testRootLoggerBuilderWithFilterAlias() { assertSame(filter, viaTypo.getFilter()); assertSame(filter, viaAlias.getFilter()); } - - } diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java index e9d7caf9cd9..db5d5995963 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java @@ -1136,7 +1136,9 @@ public B withtFilter(final Filter filter) { return setFilter(filter); } - /** @deprecated since 2.25.0. Use {@link #setFilter(Filter)} instead. */ + /** + * @deprecated since 2.25.0. Use {@link #setFilter(Filter)} instead. + */ @Deprecated public B withFilter(final Filter filter) { return setFilter(filter); diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/package-info.java index b0dbdc1ea00..a37179d532b 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/package-info.java @@ -18,7 +18,7 @@ * Configuration of Log4j 2. */ @Export -@Version("2.26.0") +@Version("2.27.0") package org.apache.logging.log4j.core.config; import org.osgi.annotation.bundle.Export; diff --git a/src/changelog/.2.x.x/3369_add_missing_RootLogger_withFilter_alias.xml b/src/changelog/.2.x.x/3369_add_missing_RootLogger_withFilter_alias.xml index eb91321d6e7..020d8e98303 100644 --- a/src/changelog/.2.x.x/3369_add_missing_RootLogger_withFilter_alias.xml +++ b/src/changelog/.2.x.x/3369_add_missing_RootLogger_withFilter_alias.xml @@ -6,8 +6,8 @@ https://logging.apache.org/xml/ns/log4j-changelog-0.xsd" type="added"> + - Add the missing `LoggerConfig.RootLogger.Builder#withFilter(Filter)` alias so it matches - `LoggerConfig.Builder`, and keep the misspelled `withtFilter` method as a deprecated wrapper. + Add missing `withFilter()` method to `LoggerConfig.RootLogger.Builder` to fix `withtFilter` typo. - + \ No newline at end of file