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">

Reply via email to