-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Jackson Release 3.2
Tatu Saloranta edited this page Mar 27, 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)
-
#1211: Add
JsonParser.willInternPropertyNames()to check whether property name interning is enabled -
#1544: Validate
read()parameters inMergedStreamandUTF32Reader - #1545: Increase Android baseline from 26 to 34 in Jackson 3.2
-
#1564: Add
SimpleStreamReadContext.rollbackValueRead()method -
#1575: Implement document length tracking for
DataInput-backed JSON parsers via subclass - #1576: Use Java 17 intrinstics for long multiplication
-
#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 -
#3083:
@JsonIncludePropertiescould be used like@JsonPropertyOrder -
#3166: Ability to sort
Sets before serialization (addSerializationFeature.ORDER_SET_ELEMENTS) -
#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 - #3229: Existing instance of a local/anonymous Class cannot be updated
- #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() -
#3604: Allow use of
JsonNodefield for@JsonAnyGetter -
#4014: No way to combine
@JsonTypeInfo(include = As.PROPERTY)and@JsonIdentityInfo(generator = PropertyGenerator.class) -
#4758:
ConfigOverrideusingNulls.AS_EMPTYdoes not work with@JsonManagedReference -
#4983:
JsonTypeInfo.Id.MINIMAL_CLASSgenerates invalid type on sub-package -
#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 -
#5814: Enum deserialization does not respect
JsonFormat.Feature.ACCEPT_CASE_INSENSITIVE_VALUESoverride -
#5821: Fix dead code and side-effect bug in
BeanPropertyWriter.toString()
-
#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 -
#27:
@JacksonXmlElementWrapperconflicting getter/setter definitions for property -
#149:
@JacksonXmlElementWrapperas a@JsonCreator parameternot working - #192: Two wrapped lists with items of same name conflict
-
#248:
@JacksonXmlPropertywith attributes raises an exception when used with@JsonIdentityInfo -
#299:
@JsonUnwrappedwith a@JacksonXmlElementWrapper(useWrapping=false)on a collection fails reading from XML -
#306: Can not use
@JacksonXmlTextfor Creator property (creator parameter) -
#334:
@JacksonXmlElementWrapper(useWrapping=false)fails when using aDeserializerModifierthat delegates -
#344: Unable to (de)serialize
nullin polymorphic Collection -- may need to usexsi:nilhandling? -
#358: Allow skipping attributes from the
http://www.w3.org/2001/XMLSchema-instancenamespace (with newXmlReadFeature.SKIP_UNKNOWN_XSI_ATTRIBUTES) -
#426:
InvalidTypeIdExceptionwhen parsing XML to POJO containing nestedList<>, customTypeIdResolver - #449: Trouble dealing with JacksonXMLText if properties are present or if element is in a collection
- #455: Can't deserialize list in JsonSubtype when type property is visible
-
#496: Root name missing when root element has no attributes (add
FromXmlParser.getRootElementName()) -
#514: Deserialisation to polymorphic class using
JsonTypeInfo.Id.DEDUCTIONand@JacksonXmlElementWrapperannotation fails - #517: XML wrapper doesn't work with java records
- #525: Order of XML Properties trigger different behaviors with polymorphic nested objects
-
#565: Blank text is ignored in
@JacksonXmlText -
#561: Deserializing empty timestamp fields to
nullvalue doesn't work (instead becomes "empty", Epoch time) - #567: First element in unwrapped XML array is ignored during deserialization to base class
- #608: Jackson fails to instantiate class when only text node is present
-
#615: Deserialization of Xml with
@JacksonXmlTextusing@JsonCreator(intojava.util.Map) fails -
#627: Disabling wrapper on list (
defaultUseWrapper = false) does not serialize/deserializenulllists as expected -
#629:
@JsonAnySettermangles nested xml Elements and Attributes during serialization -
#665:
@JacksonXmlPropertyappears to behave differently than@JsonPropertywhen used on java records -
#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