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 <[email protected]> Authored: Thu Jun 1 10:01:48 2017 -0700 Committer: Gary Gregory <[email protected]> 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>
