You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ck...@apache.org on 2018/04/15 18:26:32 UTC

logging-log4j2 git commit: [LOG4J2-2317] MutableLogEvent.getNonNullImmutableMessage retains format and parameters

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 469d8b72a -> 9a07b5a4a


[LOG4J2-2317] MutableLogEvent.getNonNullImmutableMessage retains format and parameters


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/9a07b5a4
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/9a07b5a4
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/9a07b5a4

Branch: refs/heads/master
Commit: 9a07b5a4ac1a8edb9a2be6bd472f19ba6804e4fd
Parents: 469d8b7
Author: Carter Kozak <ck...@apache.org>
Authored: Fri Apr 13 20:15:27 2018 -0700
Committer: Carter Kozak <ck...@apache.org>
Committed: Sun Apr 15 14:25:23 2018 -0400

----------------------------------------------------------------------
 .../org/apache/logging/log4j/core/impl/Log4jLogEvent.java |  2 +-
 .../apache/logging/log4j/core/impl/MutableLogEvent.java   |  2 +-
 .../logging/log4j/core/impl/MutableLogEventTest.java      | 10 ++++++++++
 src/changes/changes.xml                                   |  3 +++
 4 files changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9a07b5a4/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
index 11cb3dd..06c8c1d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
@@ -538,7 +538,7 @@ public class Log4jLogEvent implements LogEvent {
     }
 
     public void makeMessageImmutable() {
-        message = new SimpleMessage(message.getFormattedMessage());
+        message = new MementoMessage(message.getFormattedMessage(), message.getFormat(), message.getParameters());
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9a07b5a4/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java
index be374a0..44d3c1e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java
@@ -501,6 +501,6 @@ public class MutableLogEvent implements LogEvent, ReusableMessage, ParameterVisi
     }
 
     private Message getNonNullImmutableMessage() {
-        return message != null ? message : new SimpleMessage(String.valueOf(messageText));
+        return message != null ? message : new MementoMessage(String.valueOf(messageText), messageFormat, getParameters());
     }
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9a07b5a4/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/MutableLogEventTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/MutableLogEventTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/MutableLogEventTest.java
index 655b561..9db00fa 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/MutableLogEventTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/impl/MutableLogEventTest.java
@@ -142,6 +142,16 @@ public class MutableLogEventTest {
         assertEquals("format", "msg in a {}", memento.getFormat());
         assertEquals("formatted", "msg in a bottle", memento.getFormattedMessage());
         assertEquals("parameters", new String[] {"bottle"}, memento.getParameters());
+
+        Message eventMementoMessage = mutable.createMemento().getMessage();
+        assertEquals("format", "msg in a {}", eventMementoMessage.getFormat());
+        assertEquals("formatted", "msg in a bottle", eventMementoMessage.getFormattedMessage());
+        assertEquals("parameters", new String[] {"bottle"}, eventMementoMessage.getParameters());
+
+        Message log4JLogEventMessage = new Log4jLogEvent.Builder(mutable).build().getMessage();
+        assertEquals("format", "msg in a {}", log4JLogEventMessage.getFormat());
+        assertEquals("formatted", "msg in a bottle", log4JLogEventMessage.getFormattedMessage());
+        assertEquals("parameters", new String[] {"bottle"}, log4JLogEventMessage.getParameters());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9a07b5a4/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2c91f6b..afac65e 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -160,6 +160,9 @@
         Update LMAX Disruptor from 3.3.7 to 3.4.1.
       </action>
     </release>
+    <action issue="LOG4J2-2317" dev="ckozak" type="fix">
+      MutableLogEvent.getNonNullImmutableMessage and Log4jLogEvent.makeMessageImmutable retain format and parameters.
+    </action>
     <release version="2.11.0" date="2018-xx-xx" description="GA Release 2.11.0">
       <action issue="LOG4J2-2104" dev="rgoers" type="fix">
         LoaderUtil was not looping properly over classloaders.