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 2021/12/23 17:43:54 UTC
[logging-log4j2] branch release-2.x updated: LOG4J2-3264: Fix MapLookup to lookup MapMessage before DefaultMap
This is an automated email from the ASF dual-hosted git repository.
ckozak pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/release-2.x by this push:
new 4d30644 LOG4J2-3264: Fix MapLookup to lookup MapMessage before DefaultMap
4d30644 is described below
commit 4d30644bba4d5354b0d7983a5019a14dcb6ad4a4
Author: Yanming Zhou <zh...@gmail.com>
AuthorDate: Tue Dec 21 09:02:07 2021 +0800
LOG4J2-3264: Fix MapLookup to lookup MapMessage before DefaultMap
---
.../java/org/apache/logging/log4j/core/lookup/MapLookup.java | 11 ++++-------
.../apache/logging/log4j/core/lookup/InterpolatorTest.java | 2 +-
.../org/apache/logging/log4j/core/lookup/MapLookupTest.java | 6 ++++--
3 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/MapLookup.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/MapLookup.java
index 0b98475..a7f815d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/MapLookup.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/MapLookup.java
@@ -119,17 +119,14 @@ public class MapLookup implements StrLookup {
@Override
public String lookup(final LogEvent event, final String key) {
final boolean isMapMessage = event != null && event.getMessage() instanceof MapMessage;
- if (map == null && !isMapMessage) {
- return null;
- }
- if (map != null && map.containsKey(key)) {
- final String obj = map.get(key);
+ if (isMapMessage) {
+ final String obj = ((MapMessage) event.getMessage()).get(key);
if (obj != null) {
return obj;
}
}
- if (isMapMessage) {
- return ((MapMessage) event.getMessage()).get(key);
+ if (map != null) {
+ return map.get(key);
}
return null;
}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/InterpolatorTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/InterpolatorTest.java
index 481803a..af0067b 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/InterpolatorTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/InterpolatorTest.java
@@ -166,6 +166,6 @@ public class InterpolatorTest {
.setLevel(Level.INFO)
.setMessage(new StringMapMessage(map))
.build();
- assertEquals("configProperties", interpolator.lookup(event, "map:key"));
+ assertEquals("mapMessage", interpolator.lookup(event, "map:key"));
}
}
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/MapLookupTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/MapLookupTest.java
index 2804e97..426c717 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/MapLookupTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/MapLookupTest.java
@@ -97,9 +97,10 @@ public class MapLookupTest {
}
@Test
- public void testLookupDefaultMapIsCheckedBeforeMapMessage() {
+ public void testLookupMapMessageIsCheckedBeforeDefaultMap() {
final HashMap<String, String> map = new HashMap<>();
map.put("A", "ADefault");
+ map.put("B", "BDefault");
final HashMap<String, Object> eventMap = new HashMap<>();
eventMap.put("A", "AEvent");
final MapMessage message = new MapMessage<>(eventMap);
@@ -107,7 +108,8 @@ public class MapLookupTest {
.setMessage(message)
.build();
final MapLookup lookup = new MapLookup(map);
- assertEquals("ADefault", lookup.lookup(event, "A"));
+ assertEquals("AEvent", lookup.lookup(event, "A"));
+ assertEquals("BDefault", lookup.lookup(event, "B"));
}
@Test