You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Carter Kozak (JIRA)" <ji...@apache.org> on 2019/01/02 14:59:00 UTC

[jira] [Assigned] (LOG4J2-2522) Make MapMessageLookup.lookup usable with MapMessage again

     [ https://issues.apache.org/jira/browse/LOG4J2-2522?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Carter Kozak reassigned LOG4J2-2522:
------------------------------------

    Assignee: Carter Kozak

> Make MapMessageLookup.lookup usable with MapMessage again
> ---------------------------------------------------------
>
>                 Key: LOG4J2-2522
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2522
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Core
>            Reporter: Adam Lesiak
>            Assignee: Carter Kozak
>            Priority: Minor
>             Fix For: 3.0.0, 2.11.2
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> https://issues.apache.org/jira/browse/LOG4J2-1935
> changed MapMessage to a generic superclass, 
> but decided to cast to StringMapMessage (a subclass with previous semantics) in MapMessageLookup.lookup
> Test case:
> {{ @Test}}
> {{ public void testEventMapMessage() {}}
> {{    final HashMap<String, String> map = new HashMap<>();}}
> {{    map.put("A", "B");}}
> {{    final HashMap<String, String> eventMap = new HashMap<>();}}
> {{    eventMap.put("A1", "B1");}}
> {{    final StringMapMessage message = new StringMapMessage(eventMap);}}
> {{    final LogEvent event = Log4jLogEvent.newBuilder()}}
> {{        .setMessage(message)}}
> {{        .build();}}
> {{    final MapLookup lookup = new MapLookup(map);}}
> {{    assertEquals("B", lookup.lookup(event, "A"));}}
> {{    assertEquals("B1", lookup.lookup(event, "A1"));}}
> {{ }}}
> passes, but new test
> {{ @Test}}
> {{ public void testEventMapMessageNew() {}}
> {{    final HashMap<String, String> map = new HashMap<>();}}
> {{    map.put("A", "B");}}
> {{    final HashMap<String, String> eventMap = new HashMap<>();}}
> {{    eventMap.put("A1", 11);}}
> {{    final MapMessage message = new MapMessage<>(eventMap);}}
> {{    final LogEvent event = Log4jLogEvent.newBuilder()}}
> {{        .setMessage(message)}}
> {{        .build();}}
> {{    final MapLookup lookup = new MapLookup(map);}}
> {{    assertEquals("B", lookup.lookup(event, "A"));}}
> {{    assertEquals("11", lookup.lookup(event, "A1"));}}
> {{ }}}
> Even worse, if we initialize MapMessage with a Map<String, String>, the test case still fails.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)