Repository: logging-log4j2 Updated Branches: refs/heads/master 86d8944fa -> 4cf831b69
[LOG4J2-1062] Log4jMarker#add(Marker) does not respect org.slf4j.Marker contract. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/4cf831b6 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/4cf831b6 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/4cf831b6 Branch: refs/heads/master Commit: 4cf831b69978218c97649400c33ca6ec882e3989 Parents: 86d8944 Author: ggregory <[email protected]> Authored: Mon Jun 22 10:17:19 2015 -0700 Committer: ggregory <[email protected]> Committed: Mon Jun 22 10:17:19 2015 -0700 ---------------------------------------------------------------------- .../org/apache/logging/slf4j/Log4jMarker.java | 3 +++ .../org/apache/logging/slf4j/MarkerTest.java | 24 ++++++++++++++++++++ src/changes/changes.xml | 3 +++ 3 files changed, 30 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4cf831b6/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java ---------------------------------------------------------------------- diff --git a/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java b/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java index d57cf19..aee8dcf 100644 --- a/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java +++ b/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java @@ -50,6 +50,9 @@ public class Log4jMarker implements Marker { @Override public void add(final Marker marker) { + if (marker == null) { + throw new IllegalArgumentException(); + } final Marker m = factory.getMarker(marker.getName()); this.marker.addParents(((Log4jMarker)m).getLog4jMarker()); } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4cf831b6/log4j-slf4j-impl/src/test/java/org/apache/logging/slf4j/MarkerTest.java ---------------------------------------------------------------------- diff --git a/log4j-slf4j-impl/src/test/java/org/apache/logging/slf4j/MarkerTest.java b/log4j-slf4j-impl/src/test/java/org/apache/logging/slf4j/MarkerTest.java index ce2fa1e..2ef29f1 100644 --- a/log4j-slf4j-impl/src/test/java/org/apache/logging/slf4j/MarkerTest.java +++ b/log4j-slf4j-impl/src/test/java/org/apache/logging/slf4j/MarkerTest.java @@ -40,6 +40,30 @@ public class MarkerTest { } @Test + public void testAddNullMarker() { + final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(CHILD_MAKER_NAME + "-ANM"); + final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(PARENT_MARKER_NAME + "-ANM"); + slf4jMarker.add(slf4jParent); + final Marker log4jParent = MarkerManager.getMarker(PARENT_MARKER_NAME + "-ANM"); + final Marker log4jMarker = MarkerManager.getMarker(CHILD_MAKER_NAME + "ANM"); + Log4jMarker log4jSlf4jParent = new Log4jMarker(log4jParent); + Log4jMarker log4jSlf4jMarker = new Log4jMarker(log4jMarker); + final org.slf4j.Marker nullMarker = null; + try { + log4jSlf4jParent.add(nullMarker); + fail("Expected " + IllegalArgumentException.class.getName()); + } catch (IllegalArgumentException e) { + // expected + } + try { + log4jSlf4jMarker.add(nullMarker); + fail("Expected " + IllegalArgumentException.class.getName()); + } catch (IllegalArgumentException e) { + // expected + } + } + + @Test public void testContainsMarker() { final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(CHILD_MAKER_NAME + "-CM"); final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(PARENT_MARKER_NAME + "-CM"); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4cf831b6/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 8d731b9..657f762 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -96,6 +96,9 @@ <action issue="LOG4J2-1061" dev="ggregory" type="fix"> Log4jMarker#remove(Marker) does not respect org.slf4j.Marker contract. </action> + <action issue="LOG4J2-1062" dev="ggregory" type="fix"> + Log4jMarker#add(Marker) does not respect org.slf4j.Marker contract. + </action> <action issue="LOG4J2-890" dev="ggregory" type="update" due-to="Hassan Kalaldeh, Robert Andersson, Remko Popma"> log4j-web-2.1 should workaround a bug in JBOSS EAP 6.2. </action>
