Oh, I see. I meant to have it return an object. I should have written:
    Object getObject(String key)

I was meaning to ask: if we allow putting Object instead of just String
into the map, then shouldn't we provide a way to get the object out?

Sorry about my poor proofreading.


On Thu, Mar 25, 2021 at 12:17 PM Ralph Goers <ralph.go...@dslextreme.com>
wrote:

> 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