diff --git a/release-notes/VERSION-2.x b/release-notes/VERSION-2.x index 3b148900ab..ffb34165e8 100644 --- a/release-notes/VERSION-2.x +++ b/release-notes/VERSION-2.x @@ -6,8 +6,6 @@ Project: jackson-databind 2.18.0 (not yet released) -- - 2.17.2 (not yet released) #4561: Issues using jackson-databind 2.17.1 with Reactor @@ -102,6 +100,8 @@ Project: jackson-databind #4564: Possible 2.16.0 Enum-as-JSON-Object serialization regression (reported by Guillaume J) (fix contributed by Joo-Hyuk K) +#4581: Incompatible Constructor Parameter Type in `EnumDeserializer` + (reported by @Hunter-Lam) 2.16.2 (09-Mar-2024) diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/std/EnumDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/deser/std/EnumDeserializer.java index f3cab75adb..51e587ba86 100644 --- a/src/main/java/com/fasterxml/jackson/databind/deser/std/EnumDeserializer.java +++ b/src/main/java/com/fasterxml/jackson/databind/deser/std/EnumDeserializer.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.util.Objects; +import java.util.Optional; import com.fasterxml.jackson.annotation.JsonFormat; @@ -19,7 +20,6 @@ import com.fasterxml.jackson.databind.util.ClassUtil; import com.fasterxml.jackson.databind.util.CompactStringObjectMap; import com.fasterxml.jackson.databind.util.EnumResolver; -import java.util.Optional; /** * Deserializer class that can deserialize instances of @@ -83,7 +83,7 @@ public class EnumDeserializer @Deprecated public EnumDeserializer(EnumResolver byNameResolver, Boolean caseInsensitive) { - this(byNameResolver, caseInsensitive, null, null); + this(byNameResolver, Boolean.TRUE.equals(caseInsensitive), null); } /** @@ -92,7 +92,7 @@ public EnumDeserializer(EnumResolver byNameResolver, Boolean caseInsensitive) */ @Deprecated public EnumDeserializer(EnumResolver byNameResolver, boolean caseInsensitive, - EnumResolver byEnumNamingResolver) + EnumResolver byEnumNamingResolver) { super(byNameResolver.getEnumClass()); _lookupByName = byNameResolver.constructLookup(); @@ -108,7 +108,7 @@ public EnumDeserializer(EnumResolver byNameResolver, boolean caseInsensitive, * @since 2.16 */ public EnumDeserializer(EnumResolver byNameResolver, boolean caseInsensitive, - EnumResolver byEnumNamingResolver, EnumResolver toStringResolver) + EnumResolver byEnumNamingResolver, EnumResolver toStringResolver) { super(byNameResolver.getEnumClass()); _lookupByName = byNameResolver.constructLookup(); @@ -130,7 +130,7 @@ protected EnumDeserializer(EnumDeserializer base, Boolean caseInsensitive, _lookupByName = base._lookupByName; _enumsByIndex = base._enumsByIndex; _enumDefaultValue = base._enumDefaultValue; - _caseInsensitive = caseInsensitive; + _caseInsensitive = Boolean.TRUE.equals(caseInsensitive); _isFromIntValue = base._isFromIntValue; _useDefaultValueForUnknownEnum = useDefaultValueForUnknownEnum; _useNullForUnknownEnum = useNullForUnknownEnum;