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