On 12/02/2022 01:21, Xeno Amess wrote:
> > I think the class loader will fail to load `ObjectMapper` breaking
> things.
> I don't think so...
> Maybe it is worth to have a try
I gave this a try with a snapshot build, adding a dummy
`readValue(JsonParser, Path, Class<T> valueType)` method to
ObjectMapper. As Jonas and Xeno thought, older Android devices are able
to load and use the ObjectMapper class as long as they don't call this
method.
I don't know whether the dummy method is removed by ProGuard or whether
the reference to Path is resolved lazily by the class loader, but either
way it seems to work.
As another experiment, I modified the `readValue(JsonParser, Class<T>
valueType)` method to call through to the dummy method, using
`Paths.get("/")` to create the Path parameter. My old device was still
able to load and instantiate the ObjectMapper class, but calling the
modified readValue() method caused a NoClassDefFoundError for
java.nio.file.Paths. This suggests that references to unknown classes
can safely exist even if they're not removed by ProGuard, and the class
loader resolves references lazily.
So in short, it looks like adding a method that uses Path is fine, as
long as that class isn't used on any call paths that need to remain
backward compatible.
Cheers,
Michael
> Tatu Saloranta <
ta...@fasterxml.com <mailto:
ta...@fasterxml.com>> 于2022年
> <mailto:
jonas....@gmail.com>
> <
jonas....@gmail.com <mailto:
jonas....@gmail.com>> wrote:
> >
> > A missing class for a method parameter shouldn't affect you, you
> could simply not use that method. If it was a field it'd be a
> different story.
> >
> > - Jonas
>
> I don't think that is correct in this case? If a method signature for
> `ObjectMapper.readValue(Path src, Class<?> target)` is encountered,
> I think the class loader will fail to load `ObjectMapper` breaking
> things.
> Or is this not the case?
>
> I do know that if `Path` was known but referred to something else
> itself that wasn't, that'd be fine.
> But in this particular case I would expect actual trouble even if that
> specific `readValue()` method was not called.
>
> -+ Tatu +-
>
> >
> > Michael Rogers schrieb am Freitag, 11. Februar 2022 um 13:48:44
> UTC+1:
> >>
> >> On 01/02/2022 18:28, Tatu Saloranta wrote:
> >> > On Mon, Jan 24, 2022 at 8:13 PM Xeno Amess <
xeno...@gmail.com
> <mailto:
xeno...@gmail.com>
> <
http://apilevels.com>). As an app
> >> developer currently using 2.13, this would stop me from upgrading to
> >> 2.14 for another couple of years, while those old devices
> gradually die out.
> >>
> >> Cheers,
> >> Michael
> >>
> >> > -+ Tatu +-
> >> >
> >> > --
> >> > You received this message because you are subscribed to the Google
> >> > Groups "jackson-user" group.
> >> > To unsubscribe from this group and stop receiving emails from it,
> >> > send an email to
jackson-user...@googlegroups.com
> <mailto:
jackson-user...@googlegroups.com>
> >> > <mailto:
jackson-user...@googlegroups.com
> <
https://groups.google.com/d/msgid/jackson-user/96b2fcd7-3f1c-48fa-aadd-15ff6f3b85abn%40googlegroups.com?utm_medium=email&utm_source=footer
> >> > <mailto:
jackson-user...@googlegroups.com
> <
https://groups.google.com/d/msgid/jackson-user/CAGrxA24hYAiFW1xymfxBcNRqwYTkEakCm8ikO7bwbeuLdXcwsw%40mail.gmail.com?utm_medium=email&utm_source=footer
> <mailto:
jackson-user%2Bunsu...@googlegroups.com>.
> > To view this discussion on the web visit
>
https://groups.google.com/d/msgid/jackson-user/2109c03c-15b2-40b7-8b35-afa80b2f6505n%40googlegroups.com
> <
https://groups.google.com/d/msgid/jackson-user/2109c03c-15b2-40b7-8b35-afa80b2f6505n%40googlegroups.com>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "jackson-user" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to
jackson-user...@googlegroups.com
> <mailto:
jackson-user%2Bunsu...@googlegroups.com>.
> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/jackson-user/CAL4a10hZ3n_Kuh8Ns8nQ-S0Yk26%2BE3nbFQa1NTJouUmOd%2Bu2TQ%40mail.gmail.com
> <
https://groups.google.com/d/msgid/jackson-user/CAL4a10hZ3n_Kuh8Ns8nQ-S0Yk26%2BE3nbFQa1NTJouUmOd%2Bu2TQ%40mail.gmail.com>.
>
https://groups.google.com/d/msgid/jackson-user/CAFF4x5KKU0OVfMHPt63qRB58Lgm18-c4x4ZF11R%2BLr7qYfDMYQ%40mail.gmail.com
> <
https://groups.google.com/d/msgid/jackson-user/CAFF4x5KKU0OVfMHPt63qRB58Lgm18-c4x4ZF11R%2BLr7qYfDMYQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.