Repository: logging-log4j2 Updated Branches: refs/heads/GenericMapMessageSimple 1a153edb9 -> 5d6d38be3
Use MapMessage instead of StringMapMessage. Change serialization id back to what it was. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/5d6d38be Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/5d6d38be Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/5d6d38be Branch: refs/heads/GenericMapMessageSimple Commit: 5d6d38be3607995d47dc0111cccc84604009d6e1 Parents: 1a153ed Author: Gary Gregory <[email protected]> Authored: Tue Jun 6 23:48:45 2017 -0700 Committer: Gary Gregory <[email protected]> Committed: Tue Jun 6 23:48:45 2017 -0700 ---------------------------------------------------------------------- .../org/apache/logging/log4j/message/MapMessage.java | 2 +- .../logging/log4j/flume/appender/FlumeEvent.java | 15 +++++++++------ .../flume/appender/FlumePersistentAppenderTest.java | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5d6d38be/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java index 621d8c2..843c705 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java @@ -50,7 +50,7 @@ import org.apache.logging.log4j.util.TriConsumer; @AsynchronouslyFormattable public class MapMessage<M extends MapMessage<M, V>, V> implements MultiformatMessage, StringBuilderFormattable { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = -5031471831131487120L; /** * When set as the format specifier causes the Map to be formatted as XML. http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5d6d38be/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEvent.java ---------------------------------------------------------------------- diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEvent.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEvent.java index 56c0444..bf76e11 100644 --- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEvent.java +++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEvent.java @@ -29,16 +29,17 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LoggingException; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.ThreadContext; -import org.apache.logging.log4j.util.ReadOnlyStringMap; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.impl.Log4jLogEvent; import org.apache.logging.log4j.core.impl.ThrowableProxy; import org.apache.logging.log4j.core.util.Patterns; import org.apache.logging.log4j.core.util.UuidUtil; -import org.apache.logging.log4j.message.StringMapMessage; +import org.apache.logging.log4j.message.MapMessage; import org.apache.logging.log4j.message.Message; +import org.apache.logging.log4j.message.StringMapMessage; import org.apache.logging.log4j.message.StructuredDataId; import org.apache.logging.log4j.message.StructuredDataMessage; +import org.apache.logging.log4j.util.ReadOnlyStringMap; import org.apache.logging.log4j.util.Strings; /** @@ -131,13 +132,15 @@ public class FlumeEvent extends SimpleEvent implements LogEvent { } final String guid = UuidUtil.getTimeBasedUuid().toString(); final Message message = event.getMessage(); - if (message instanceof StringMapMessage) { + if (message instanceof MapMessage) { // Add the guid to the Map so that it can be included in the Layout. - ((StringMapMessage) message).put(GUID, guid); + @SuppressWarnings("unchecked") + MapMessage<?, String> stringMapMessage = (MapMessage<?, String>) message; + stringMapMessage.put(GUID, guid); if (message instanceof StructuredDataMessage) { addStructuredData(eventPrefix, headers, (StructuredDataMessage) message); } - addMapData(eventPrefix, headers, (StringMapMessage) message); + addMapData(eventPrefix, headers, stringMapMessage); } else { headers.put(GUID, guid); } @@ -152,7 +155,7 @@ public class FlumeEvent extends SimpleEvent implements LogEvent { fields.put(prefix + EVENT_ID, id.getName()); } - protected void addMapData(final String prefix, final Map<String, String> fields, final StringMapMessage msg) { + protected void addMapData(final String prefix, final Map<String, String> fields, final MapMessage<?, String> msg) { final Map<String, String> data = msg.getData(); for (final Map.Entry<String, String> entry : data.entrySet()) { fields.put(prefix + entry.getKey(), entry.getValue()); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5d6d38be/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java ---------------------------------------------------------------------- diff --git a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java index 48397b5..4a8cfc9 100644 --- a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java +++ b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java @@ -153,7 +153,7 @@ public class FlumePersistentAppenderTest { final Event event = primary.poll(); Assert.assertNotNull("Received " + i + " events. Event " + (i + 1) + " is null", event); final String value = event.getHeaders().get("counter"); - Assert.assertNotNull("Missing counter", value); + Assert.assertNotNull("Missing 'counter' in map " + event.getHeaders() + ", i = " + i, value); final int counter = Integer.parseInt(value); if (fields[counter]) { Assert.fail("Duplicate event");
