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