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 >>>>>>>>>>> >>>>>>>>>>>> . >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>> >>>>>> >>>>> >>>> >> >> >>