Repository: logging-log4j2 Updated Branches: refs/heads/master 5878f4281 -> c8fd3c530
[LOG4J2-1058] Log4jMarker#contains(String) 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/c8fd3c53 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/c8fd3c53 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/c8fd3c53 Branch: refs/heads/master Commit: c8fd3c530ea43e3567bd5a1dd5b256479ca8eab8 Parents: 5878f42 Author: ggregory <[email protected]> Authored: Mon Jun 22 10:07:37 2015 -0700 Committer: ggregory <[email protected]> Committed: Mon Jun 22 10:07:37 2015 -0700 ---------------------------------------------------------------------- .../org/apache/logging/slf4j/Log4jMarker.java | 9 +++-- .../org/apache/logging/slf4j/MarkerTest.java | 39 ++++++++++++++++++++ src/changes/changes.xml | 3 ++ 3 files changed, 48 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c8fd3c53/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 50d126c..c2273f5 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 @@ -84,9 +84,12 @@ public class Log4jMarker implements Marker { } @Override - public boolean contains(final org.slf4j.Marker marker) { - return this.marker.isInstanceOf(marker.getName()); - } + public boolean contains(final org.slf4j.Marker marker) { + if (marker == null) { + throw new IllegalArgumentException(); + } + return this.marker.isInstanceOf(marker.getName()); + } @Override public boolean contains(final String s) { http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c8fd3c53/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 fdd0848..ecc7c49 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 @@ -19,6 +19,7 @@ package org.apache.logging.slf4j; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.MarkerManager; import org.junit.After; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -39,6 +40,44 @@ public class MarkerTest { } @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"); + slf4jMarker.add(slf4jParent); + final Marker log4jParent = MarkerManager.getMarker(PARENT_MARKER_NAME + "-CM"); + final Marker log4jMarker = MarkerManager.getMarker(CHILD_MAKER_NAME + "-CM"); + Log4jMarker log4jSlf4jParent = new Log4jMarker(log4jParent); + Log4jMarker log4jSlf4jMarker = new Log4jMarker(log4jMarker); + final org.slf4j.Marker nullMarker = null; + try { + Assert.assertFalse(log4jSlf4jParent.contains(nullMarker)); + fail("Expected " + IllegalArgumentException.class.getName()); + } catch (IllegalArgumentException e) { + // expected + } + try { + Assert.assertFalse(log4jSlf4jMarker.contains(nullMarker)); + fail("Expected " + IllegalArgumentException.class.getName()); + } catch (IllegalArgumentException e) { + // expected + } + } + + @Test + public void testContainsString() { + final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(CHILD_MAKER_NAME + "-CS"); + final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(PARENT_MARKER_NAME + "-CS"); + slf4jMarker.add(slf4jParent); + final Marker log4jParent = MarkerManager.getMarker(PARENT_MARKER_NAME + "-CS"); + final Marker log4jMarker = MarkerManager.getMarker(CHILD_MAKER_NAME + "-CS"); + Log4jMarker log4jSlf4jParent = new Log4jMarker(log4jParent); + Log4jMarker log4jSlf4jMarker = new Log4jMarker(log4jMarker); + String nullStr = null; + Assert.assertFalse(log4jSlf4jParent.contains(nullStr)); + Assert.assertFalse(log4jSlf4jMarker.contains(nullStr)); + } + + @Test public void testMarker() { final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(CHILD_MAKER_NAME); final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(PARENT_MARKER_NAME); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c8fd3c53/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index ac6097d..bb54d69 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -90,6 +90,9 @@ <action issue="LOG4J2-1058" dev="ggregory" type="fix" due-to="Daniel Branzea"> Log4jMarker#contains(String) does not respect org.slf4j.Marker contract. </action> + <action issue="LOG4J2-1060" dev="ggregory" type="fix"> + Log4jMarker#contains(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>
