-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Jackson Release 3.2
Tatu Saloranta edited this page Mar 17, 2026
·
162 revisions
Jackson Version 3.2 is under development as of February, 2026.
This wiki page gives a list of links to all changes (with brief descriptions) that will be included.
Version is under development (under branch 3.x).
It will likely NOT be designated as Long-Term-Support (LTS) since 3.1 is an LTS.
No release yet.
Up to SDK 34 for all components (Jackson 3.1 had SDK 26 for jackson-core, 34 for jackson-databind).
Verified by "Animal Sniffer" plug-in.
Same as Jackson 3.1; Java 17.
Same as Jackson 3.1?
No changes.
-
#1329 -- External type property (
@JsonTypeInfo(include = As.EXTERNAL_PROPERTY)) deserialized even ifvisible = false-- fixed to now properly consider visibility- Fixes behavior but since wrong behavior has been in for a long time (since Jackson 2.7), a new
MapperFeature.EXTERNAL_TYPE_ID_ALWAYS_VISIBLE(default:false) was added: it can be enabled to change behavior back to pre-3.2. (i.e. External Type Id property always visible)
- Fixes behavior but since wrong behavior has been in for a long time (since Jackson 2.7), a new
-
#5734 -- "
DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVEStreats absent field same as explicitnull" -- changed handling so missing primitive values no longer fail unlessDeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIESis enabled
Issues with at least 5 thumbs-ups that were resolved in this version:
-
databind#1757: Regression in
JsonInclude.Include.NON_DEFAULTset as global default serialization inclusion (add newMapperFeature.USE_REAL_INCLUDE_NON_DEFAULT) -
dataformat-xml#306: Can not use
@JacksonXmlTextfor Creator property (creator parameter)
No separate 3.x versions released, uses jackson-annotations 2.22.
- #679: Number parsing should fail for trailing dot (period)
-
#1544: Validate
read()parameters inMergedStreamandUTF32Reader - #1545: Increase Android baseline from 26 to 34 in Jackson 3.2
-
#1564: Add
SimpleStreamReadContext.rollbackValueRead()method -
#1570: Fail parsing from
DataInputifStreamReadConstraints.getMaxDocumentLength()set
-
#639:
@JacksonInjectwith@JsonIdentityInfocauses deserialization failure (unresolved forward reference) -
#1075:
@JsonUnwrappedfields with matching@JsonIgnored getter in outer class are ignored -
#1281:
@JsonIgnorePropertiesshould work for "any getter" (for serialization) -
#1298: Writing ObjectId reference for
@JsonUnwrappedproperty fails with obscure error message -
#1329: External type property (
@JsonTypeInfo(include = As.EXTERNAL_PROPERTY)) deserialized even ifvisible = false -
#1410: Overlap between
@JsonTypeInfo.As.PROPERTYindicated type id and field with same name results inUnrecognizedPropertyException -
#1515:
@JsonSerialize(Typing.DYNAMIC)in some cases does not overrideMapperFeature.USE_STATIC_TYPING -
#1622: Failure to deserialize child object when using
@JsonIgnorePropertiesto break cycle -
#1706:
@JsonCreatornot working properly with@JsonIdentityInfowhen deserializing a collection of interfaces (immutables.io compatibility) -
#1755: Get NPE on deserializing values with recursive
@JsonIgnoreProperties -
#1757: Regression in
JsonInclude.Include.NON_DEFAULTset as global default serialization inclusion (add newMapperFeature.USE_REAL_INCLUDE_NON_DEFAULT) -
#2039:
@JsonUnwrappedandJsonTypeInfo.As.EXTERNAL_PROPERTYin the same bean doesn't work -
#2572: Can't deserialize inner class if default setter is
Nulls.AS_EMPTY -
#2780: Deserialization with Default Typing and
@JsonIdentityInfoin untyped collections fails -
#3030: Correctly deserialize forward
@JsonIdentityInforeferences when using@JsonCreator -
#3064:
@JsonPropertyOrder(alphabetic=true)is ignored in case indices are defined for@JsonProperty-- addMapperFeature.SORT_PROPERTIES_BY_INDEX -
#3194: Deserialization of 2-dimensional arrays of final types fails when using
DefaultTyping.NON_FINAL -
#3216: Delegating
@JsonCreatordoes not prevent unnecessary introspection of properties, leading to bogus failure - #3355: Deserialization fails depending on the order of deserialized objects with "Cannot construct instance (although at least one Creator exists)"
-
#3573: Inconsistent handling of nil
UUIDin property inclusion -
#3591: Ignored fields not consistently exposed via
BeanDescription.getIgnoredPropertyNames() -
#5330:
@JsonPropertyon enum values with@JsonFormat(shape = JsonFormat.Shape.NUMBER)is ignored -
#5353: Preserve order of
@JsonAnySettercreator property arguments -
#5615: JsonMapper seems to be not thread-safe when using the polymorphic
JsonTypeInfo.As.PROPERTYdefinition (and@JsonIgnoreProperties) -
#5727:
VisibilityCheckeroverridesequals()without overridinghashCode() -
#5734:
DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVEStreats absent field same as explicitnull
-
#611: Remove
IOExceptionfromAvroMapper.schemaFrom()method signatures
-
#674: Smile parser does not update
StreamReadContextindex or entry count
-
#8: Serialization of
Listincorrect if property declared as plainjava.lang.Object -
#149:
@JacksonXmlElementWrapperas a@JsonCreator parameternot working -
#299:
@JsonUnwrappedwith a@JacksonXmlElementWrapper(useWrapping=false)on a collection fails reading from XML -
#306: Can not use
@JacksonXmlTextfor Creator property (creator parameter) -
#426:
InvalidTypeIdExceptionwhen parsing XML to POJO containing nestedList<>, customTypeIdResolver - #455: Can't deserialize list in JsonSubtype when type property is visible
- #517: XML wrapper doesn't work with java records
- #525: Order of XML Properties trigger different behaviors with polymorphic nested objects
- #567: First element in unwrapped XML array is ignored during deserialization to base class
-
#615: Deserialization of Xml with
@JacksonXmlTextusing@JsonCreator(intojava.util.Map) fails -
#735: Java Record with
@JacksonXmlTextstopped working with 2.18 -
#762: Unwrapping lists does not work inside
@JsonUnwrapped -
#767: Unwrapped lists cannot be deserialized when using
JsonTypeInfo.As.EXISTING_PROPERTY -
#795:
HttpHeaderobject (= ) is not wrapped by the XML<property>tag -
#802: Serialization with Polymorphisme and
EXTERNAL_PROPERTY= duplicate property