Skip to content

Jackson Release 2.20

Tatu Saloranta edited this page Jul 18, 2025 · 57 revisions

Status

Branch is under development as of May 2025.

Patches

No release yet

Documentation

Articles, Blog posts

New Modules

Hibernate 7 support

New datatype modules added in jackson-datatype-hibernate:

Changes, compatibility

Compatibility: platform requirements

Android

Same as Jackson 2.19, SDK 26

JDK

Same as Jackson 2.19 (mostly Java 8) except:

  • jackson-annotations now requires Java 8 (no more Java 6 baseline)

Kotlin

Same as Jackson 2.19?

Compatibility: versioning

  • jackson-annotations no longer uses patch number: so we have version 2.20 (instead of 2.19.0 and so on)

Changes, behavior

None


Major focus area(s)

Most wanted Features to implement

Most wanted Features implemented

Most wanted Features considered but not implemented


Full Change list

Changes, core

  • #291: Add optional property for @JacksonInject to allow optionally injected values
  • #293: Improve duplicate Id with different associated object error message
  • #294: Drop patch number from version for 2.20 and later (no more 2.20.0)
  • #296: Drop Java 6 compatibility for 2.20 (Java 8 baseline)
  • #1438: ParserBase.close() does not clear _currToken
  • #1441: Add StreamReadFeature.CLEAR_CURRENT_TOKEN_ON_CLOSE (default: true)
  • #1448: Upgrade FastDoubleParser to 2.0.1
  • #3072: Allow specifying @JacksonInject does not fail when there's no corresponding value
  • #4136: Drop deprecated (in 2.12) PropertyNamingStrategy implementations from 2.20
  • #4656: DeserializationProblemHandler.handleUnexpectedToken() cast Object to String
  • #5103: Use writeStartObject(Object forValue, int size) for ObjectNode serialization
  • #5151: Add new exception type, MissingInjectValueException, to be used for failed @JacksonInject
  • #5192: Record types are broken on Android when using R8
  • #5194: Custom Throwable not serializable if using JsonAutoDetect settings that only detect Fields
  • #5197: Add more informative exception for back-references with record type

Changes, data formats

CBOR

  • #137: Allow exposing CBOR "undefined" value as JsonToken.VALUE_EMBEDDED_OBJECT (with embedded value of null)
  • #431: Negative BigInteger values not encoded/decoded correctly
  • #587: Allow exposing CBOR Simple values as JsonToken.VALUE_EMBEDDED_OBJECT with a feature flag
  • #603: Add support for writing unsigned numbers to CBOR

CSV

  • #564: CsvParser.getNumberValue(), related, do not throw exception for non-numeric tokens
  • 768: FromXmlParser lacks extension point for passing custom XmlTokenStream

Changes, data types:

Guava

  • #158: Increase minimum supported Guava from 20.x to 22.x for Jackson 2.20
  • #184: Add jackson-datatype-hibernate7 module for Hibernate version 7
  • #186: Update hibernate 6 code to avoid deprecated code
  • #92: DateTime serialization result is not same as Java 8 ZonedDateTime
  • #146: DateTime can't be serialized with its own zone (WRITE_DATES_WITH_CONTEXT_TIME_ZONE not respected)

Changes, other

Clone this wiki locally