You getObject method below returns a String. That is why I said the method 
isn’t needed.

Ralph

> On Mar 25, 2021, at 11:31 AM, Tim Perry <tim.v...@gmail.com> wrote:
> 
> If we are only going to allow strings in the map, then we don't need a new
> method.
> 
> If we are going to allow other values in the map, then we would need a new
> method.
> 
> Maybe I lost the plot, but I don't see the point of allowing people to put
> non-string objects into the map unless they can get non-string objects back.
> 
> On Thu, Mar 25, 2021 at 10:51 AM Ralph Goers <ralph.go...@dslextreme.com>
> wrote:
> 
>> The existing get method does a deep toString on the value object already.
>> I’m not sure why we would need a new method if the return value is a String.
>> 
>> Ralph
>> 
>>> On Mar 25, 2021, at 10:28 AM, Tim Perry <tim.v...@gmail.com> wrote:
>>> 
>>> Would we also have
>>>      public String getObject(String) {...}
>>> 
>>> What will happen when someone calls get and the object that key is mapped
>>> to is not a String? Does it return null? Throw an exception?
>>> 
>>> Instead of allowing non-string values maybe change the type of data to
>>> Map<String, String> instead of <String, Object> and avoid the mess?
>>> 
>>> 
>>> On Thu, Mar 25, 2021 at 8:02 AM Gary Gregory <garydgreg...@gmail.com>
>> wrote:
>>> 
>>>> The 2 postfix gives me flashbacks of Microsoft COM interfaces! :-p
>>>> putObject is less shudder inducing than put2... for me at least.
>>>> 
>>>> Gary
>>>> 
>>>> 
>>>> On Thu, Mar 25, 2021, 01:08 Remko Popma <remko.po...@gmail.com> wrote:
>>>> 
>>>>> Haha!
>>>>> putObject?
>>>>> 
>>>>> 
>>>>> 
>>>>>> On Mar 25, 2021, at 11:39, Ralph Goers <ralph.go...@dslextreme.com>
>>>>> wrote:
>>>>>> 
>>>>>> I’m sure that will drive Gary nuts.  Let’s call the new method
>>>> “put2()”.
>>>>>> 
>>>>>> Ralph
>>>>>> 
>>>>>>> On Mar 24, 2021, at 5:18 PM, Remko Popma <remko.po...@gmail.com>
>>>> wrote:
>>>>>>> 
>>>>>>> Instead of overloading the existing method(s), how about adding new
>>>>> methods
>>>>>>> with a slightly different name that takes Object parameters?
>>>>>>> 
>>>>>>>> On Thu, Mar 25, 2021 at 8:46 AM Carter Kozak <cko...@ckozak.net>
>>>>> wrote:
>>>>>>>> 
>>>>>>>> The method argument type changes are an ABI break, but I recall
>>>>> extending
>>>>>>>> MapMessage within a project in order to support more expressive
>> types
>>>>> --
>>>>>>>> that
>>>>>>>> may have relied on dangerously casting the result of
>>>>>>>> getIndexedReadOnlyStringMap
>>>>>>>> to an IndexedStringMap.
>>>>>>>> Including a safer Object-valued MapMessage subclass (with overloaded
>>>>> put
>>>>>>>> methods)
>>>>>>>> sounds reasonable to me given at least two of us have run into this!
>>>>>>>> 
>>>>>>>> -Carter
>>>>>>>> 
>>>>>>>> On Wed, Mar 24, 2021, at 19:29, Remko Popma wrote:
>>>>>>>>> I called it StringMap because the keys must be Strings. Admittedly
>>>>> not a
>>>>>>>>> great name. :-)
>>>>>>>>> 
>>>>>>>>> Not sure exactly, but there may be cases where this change could
>>>>> cause an
>>>>>>>>> issue:
>>>>>>>>> putAll(final Map<String, String> map) ->
>>>>>>>>> putAll(final Map<String, Object> map)
>>>>>>>>> 
>>>>>>>>> On Thu, Mar 25, 2021 at 2:12 AM Ralph Goers <
>>>>> ralph.go...@dslextreme.com
>>>>>>>> <mailto:ralph.goers%40dslextreme.com>>
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>>> I looked the other day and wondered the same thing Volkan did.
>>>> There
>>>>>>>> are
>>>>>>>>>> no unit tests and the contributor didn’t even indicate that he had
>>>>>>>> tried
>>>>>>>>>> it.
>>>>>>>>>> 
>>>>>>>>>> I was initially concerned that the underlying Map wouldn’t support
>>>> it
>>>>>>>>>> since it has StringMap in its name. It turns out the values are
>>>>>>>> objects.
>>>>>>>>>> 
>>>>>>>>>> Technically I don’t think this would break compatibility. Any code
>>>>>>>>>> referencing the put(String, String) would automatically map to
>>>>>>>> put(String,
>>>>>>>>>> Object). He didn’t modify the get method which would have broken
>>>>>>>>>> compatibility.
>>>>>>>>>> 
>>>>>>>>>> Ralph
>>>>>>>>>> 
>>>>>>>>>>> On Mar 24, 2021, at 8:27 AM, Matt Sicker <boa...@gmail.com
>>>> <mailto:
>>>>>>>> boards%40gmail.com>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> Pretty sure that would break binary compatibility since it
>> removes
>>>>>>>> the
>>>>>>>>>>> String method. I think it might be addable but not removed like
>>>>> that.
>>>>>>>>>>> 
>>>>>>>>>>> On Wed, 24 Mar 2021 at 02:39, Volkan Yazıcı <
>>>>> volkan.yaz...@gmail.com
>>>>>>>> <mailto:volkan.yazici%40gmail.com>>
>>>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> Hello,
>>>>>>>>>>>> 
>>>>>>>>>>>> Adding non-String-typed value support to MapMessage was also
>>>>>>>> something
>>>>>>>>>> on
>>>>>>>>>>>> my radar too. But this PR replacing String with Object in two
>>>> lines
>>>>>>>>>> seems
>>>>>>>>>>>> too good to be true to me. Does anybody mind taking a second
>> look
>>>>> at
>>>>>>>>>> this,
>>>>>>>>>>>> please?
>>>>>>>>>>>> 
>>>>>>>>>>>> Kind regards.
>>>>>>>>>>>> 
>>>>>>>>>>>> ---------- Forwarded message ---------
>>>>>>>>>>>> From: Henry Widd <notificati...@github.com <mailto:
>>>>>>>> notifications%40github.com>>
>>>>>>>>>>>> Date: Tue, Mar 23, 2021 at 4:58 PM
>>>>>>>>>>>> Subject: [apache/logging-log4j2] MapMessage put methods should
>>>> not
>>>>>>>>>> mandate
>>>>>>>>>>>> String values (#477)
>>>>>>>>>>>> To: apache/logging-log4j2 <logging-log...@noreply.github.com
>>>>>>>> <mailto:logging-log4j2%40noreply.github.com>>
>>>>>>>>>>>> Cc: Subscribed <subscri...@noreply.github.com <mailto:
>>>>>>>> subscribed%40noreply.github.com>>
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> the underlying Map is typed <String,Object> so the put methods
>> on
>>>>>>>>>>>> MapMessage can also be.
>>>>>>>>>>>> ------------------------------
>>>>>>>>>>>> You can view, comment on, or merge this pull request online at:
>>>>>>>>>>>> 
>>>>>>>>>>>> https://github.com/apache/logging-log4j2/pull/477
>>>>>>>>>>>> Commit Summary
>>>>>>>>>>>> 
>>>>>>>>>>>> - MapMessage put methods should not mandate String values
>>>>>>>>>>>> 
>>>>>>>>>>>> File Changes
>>>>>>>>>>>> 
>>>>>>>>>>>> - *M*
>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>> 
>>>>> 
>> log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java
>>>>>>>>>>>> <
>>>>>>>>>> 
>>>>>>>> 
>>>>> 
>>>> 
>> https://github.com/apache/logging-log4j2/pull/477/files#diff-f03ffe9ceefd37c87fd118ce591bd8ad288e43b08cd663dde14441f4e7c117ef
>>>>>>>>>>> 
>>>>>>>>>>>> (6)
>>>>>>>>>>>> 
>>>>>>>>>>>> Patch Links:
>>>>>>>>>>>> 
>>>>>>>>>>>> - https://github.com/apache/logging-log4j2/pull/477.patch
>>>>>>>>>>>> - https://github.com/apache/logging-log4j2/pull/477.diff
>>>>>>>>>>>> 
>>>>>>>>>>>> —
>>>>>>>>>>>> You are receiving this because you are subscribed to this
>> thread.
>>>>>>>>>>>> Reply to this email directly, view it on GitHub
>>>>>>>>>>>> <https://github.com/apache/logging-log4j2/pull/477>, or
>>>>> unsubscribe
>>>>>>>>>>>> <
>>>>>>>>>> 
>>>>>>>> 
>>>>> 
>>>> 
>> https://github.com/notifications/unsubscribe-auth/AAARTSKGBRHC4NG637EHA4LTFC3BTANCNFSM4ZVO7L2Q
>>>>>>>>>>> 
>>>>>>>>>>>> .
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>> 
>> 
>> 


Reply via email to