diff --git a/release-notes/CREDITS-2.x b/release-notes/CREDITS-2.x index c5fc3bd252..016a3d7cc6 100644 --- a/release-notes/CREDITS-2.x +++ b/release-notes/CREDITS-2.x @@ -1840,3 +1840,7 @@ Rikkarth (rikkarth@github) Maxim Valeev (@MaximValeev) * Reported #4508: Deserialized JsonAnySetter field in Kotlin data class is null (2.18.1) + +wrongwrong (@k163377) + * Contributed #4749: Fixed problem in StdDelegatingSerializer#serializeWithType where final serializer lookup was done + on the pre-converted value when _delegateSerializer was null diff --git a/release-notes/VERSION-2.x b/release-notes/VERSION-2.x index f50090dcef..23c805744b 100644 --- a/release-notes/VERSION-2.x +++ b/release-notes/VERSION-2.x @@ -6,6 +6,9 @@ Project: jackson-databind 2.18.1 (WIP-2024) +#4749: Fixed a problem with `StdDelegatingSerializer#serializeWithType` looking up the serializer + with the wrong argument + (fix by wrongwrong) #4508: Deserialized JsonAnySetter field in Kotlin data class is null (reported by @MaximValeev) (fix by Joo-Hyuk K) diff --git a/src/main/java/com/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer.java b/src/main/java/com/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer.java index 6f3b014d22..36b1f59869 100644 --- a/src/main/java/com/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer.java @@ -181,7 +181,7 @@ public void serializeWithType(Object value, JsonGenerator gen, SerializerProvide } JsonSerializer ser = _delegateSerializer; if (ser == null) { - ser = _findSerializer(value, provider); + ser = _findSerializer(delegateValue, provider); } ser.serializeWithType(delegateValue, gen, provider, typeSer); }