You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2017/06/01 17:01:50 UTC
logging-log4j2 git commit: [LOG4J2-1929] EOFException with
FormattedMessage. Closes #78.
Repository: logging-log4j2
Updated Branches:
refs/heads/master 8e1a4ec62 -> 687bd523e
[LOG4J2-1929] EOFException with FormattedMessage. Closes #78.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/687bd523
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/687bd523
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/687bd523
Branch: refs/heads/master
Commit: 687bd523e3efe0c1b7d65a65a9abd995f9083ad4
Parents: 8e1a4ec
Author: Gary Gregory <gg...@apache.org>
Authored: Thu Jun 1 10:01:48 2017 -0700
Committer: Gary Gregory <gg...@apache.org>
Committed: Thu Jun 1 10:01:48 2017 -0700
----------------------------------------------------------------------
.../logging/log4j/message/FormattedMessage.java | 4 ++-
.../log4j/message/FormattedMessageTest.java | 28 +++++++++++++++++---
src/changes/changes.xml | 3 +++
3 files changed, 31 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/687bd523/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessage.java
index 5fe8353..a13fd99 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/FormattedMessage.java
@@ -256,7 +256,9 @@ public class FormattedMessage implements Message {
stringArgs = new String[argArray.length];
int i = 0;
for (final Object obj : argArray) {
- stringArgs[i] = obj.toString();
+ final String string = String.valueOf(obj);
+ stringArgs[i] = string;
+ out.writeUTF(string);
++i;
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/687bd523/log4j-api/src/test/java/org/apache/logging/log4j/message/FormattedMessageTest.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/message/FormattedMessageTest.java b/log4j-api/src/test/java/org/apache/logging/log4j/message/FormattedMessageTest.java
index 061aaeb..cd24b51 100644
--- a/log4j-api/src/test/java/org/apache/logging/log4j/message/FormattedMessageTest.java
+++ b/log4j-api/src/test/java/org/apache/logging/log4j/message/FormattedMessageTest.java
@@ -16,13 +16,19 @@
*/
package org.apache.logging.log4j.message;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.util.Locale;
+
import org.apache.logging.log4j.junit.Mutable;
import org.apache.logging.log4j.util.Constants;
+import org.junit.Assert;
import org.junit.Test;
-import static org.junit.Assert.*;
-
-import java.util.Locale;
+import static org.junit.Assert.assertEquals;
/**
*
@@ -150,4 +156,20 @@ public class FormattedMessageTest {
final String actual = msg.getFormattedMessage();
assertEquals("Should use initial param value", "Test message abc", actual);
}
+
+ @Test
+ public void testSerialization() throws IOException, ClassNotFoundException {
+ final FormattedMessage expected = new FormattedMessage("Msg", "a", "b", "c");
+ final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ try (final ObjectOutputStream out = new ObjectOutputStream(baos)) {
+ out.writeObject(expected);
+ }
+ final ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+ final ObjectInputStream in = new ObjectInputStream(bais);
+ final FormattedMessage actual = (FormattedMessage) in.readObject();
+ Assert.assertEquals(expected, actual);
+ Assert.assertEquals(expected.getFormat(), actual.getFormat());
+ Assert.assertEquals(expected.getFormattedMessage(), actual.getFormattedMessage());
+ Assert.assertArrayEquals(expected.getParameters(), actual.getParameters());
+ }
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/687bd523/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 4936876..9be1872 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -34,6 +34,9 @@
<action issue="LOG4J2-1911" dev="rgoers" type="fix">
Improve the documentation of the DynamicThresholdFilter.
</action>
+ <action issue="LOG4J2-1929" dev="ggregory" type="fix" due-to="Borys Sokolov">
+ EOFException with FormattedMessage.
+ </action>
<action issue="LOG4J2-1442" dev="mikes" type="add">
Generic HTTP appender.
</action>