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>

Reply via email to