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>

Reply via email to