Repository: logging-log4j2 Updated Branches: refs/heads/release-2.x 323942383 -> e407d18ef
[LOG4J2-2441] Disallow setting a null ErrorHandler on AbstractAppender Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/e407d18e Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/e407d18e Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/e407d18e Branch: refs/heads/release-2.x Commit: e407d18efba1694f94fcf9c8eecf15b6b56fbd90 Parents: 3239423 Author: Carter Kozak <cko...@apache.org> Authored: Tue Sep 11 16:28:49 2018 -0400 Committer: Carter Kozak <cko...@apache.org> Committed: Tue Sep 11 17:01:30 2018 -0400 ---------------------------------------------------------------------- .../logging/log4j/core/appender/AbstractAppender.java | 1 + .../core/appender/ConsoleAppenderBuilderTest.java | 14 ++++++++++++++ src/changes/changes.xml | 3 +++ 3 files changed, 18 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e407d18e/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractAppender.java index 57974bd..c97f70c 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AbstractAppender.java @@ -244,6 +244,7 @@ public abstract class AbstractAppender extends AbstractFilterable implements App public void setHandler(final ErrorHandler handler) { if (handler == null) { LOGGER.error("The handler cannot be set to null"); + return; } if (isStarted()) { LOGGER.error("The handler cannot be changed once the appender is started"); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e407d18e/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderBuilderTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderBuilderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderBuilderTest.java index 01025b4..a3303bb 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderBuilderTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderBuilderTest.java @@ -18,6 +18,7 @@ package org.apache.logging.log4j.core.appender; import java.nio.charset.Charset; +import org.apache.logging.log4j.core.ErrorHandler; import org.apache.logging.log4j.core.layout.PatternLayout; import org.junit.Assert; import org.junit.Test; @@ -46,4 +47,17 @@ public class ConsoleAppenderBuilderTest { Assert.assertEquals(expectedName, layout.getCharset().name()); } + /** + * Tests https://issues.apache.org/jira/browse/LOG4J2-2441 + */ + @Test + public void testSetNullErrorHandlerIsNotAllowed() { + final ConsoleAppender appender = ConsoleAppender.newBuilder().withName("test").build(); + ErrorHandler handler = appender.getHandler(); + Assert.assertNotNull(handler); + // This could likely be allowed to throw, but we're just testing that + // setting null does not actually set a null handler. + appender.setHandler(null); + Assert.assertSame(handler, appender.getHandler()); + } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e407d18e/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index bb7eff6..93efc9f 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -55,6 +55,9 @@ <action issue="LOG4J2-2422" dev="ggregory" type="fix" due-to="rswart, Gary Gregory"> Handle some unchecked exceptions while loading plugins. </action> + <action issue="LOG4J2-2441" dev="ckozak" type="fix"> + Setting a null ErrorHandler on AbstractAppender is not allowed and will no-op as expected. + </action> </release> <release version="2.11.1" date="2018-07-22" description="GA Release 2.11.1"> <action issue="LOG4J2-2389" dev="rgoers" type="fix" due-to="Liu Wen">