Skip to content

Jackson Release 2.23

Tatu Saloranta edited this page Oct 3, 2026 · 23 revisions

Jackson Version 2.23 is under development as of June, 2026.

This wiki page gives a list of links to all changes (with brief descriptions) that will be included.

Status

Version is under development (under branch 2.x).

It will probably not be designated as Long-Term-Support (LTS) since 2.21 is a LTS.

Patches

No release yet

Documentation

Articles, Blog posts

Changes, compatibility

Android

Same as Jackson 2.22, SDK 26

JDK

Same as Jackson 2.22; mostly Java 8, with some modules requiring later JDKs:

  • jackson-datatype-hibernate: JDK 17 for some modules (Hibernate 7)
  • jackson-jakarta-providers: JDK 11

Kotlin

Same as Jackson 2.22?

Compatibility: datatype modules

No changes.

Changes, behavior

None.


Major focus area(s)

Maintenance (bug fixes).


Full Change list

Changes, core

  • #346: Add @JsonWrapped annotation
  • #1622: UTF8JsonGenerator.writeBinary() should allocate buffer based on supplied length
  • #1683: JSON\uXXXX escape accepts lone surrogates in field names for ReaderBasedJsonParser
  • #6240: @JsonValue ignored on getter also annotated with @JsonKey

Changes, dataformats

Avro

  • #745: Fix Avro bugs
  • #797: Apache decoder fails with UnsupportedOperationException when AvroParser.Feature.AVRO_BUFFERING disabled
  • #845: Avro parsers' getText(Writer) write wrong text for numeric tokens, NPE for binary; ApacheAvroParserImpl.getText() returns stale text for non-String scalars

CBOR

  • #842: CBORGenerator writes wrong exponent for BigDecimal with scale Integer.MIN_VALUE
  • #844: CBORParser.getText(Writer) writes stale text for numeric tokens, NPE for binary

CSV

  • #699: Add ability to modify columns in CsvSchema.Builder by name

Ion

  • #800: Upgrade ion-java dependency to 1.12.1

Protobuf

  • #846: ProtobufParser.getText(Writer) writes stale text for numeric tokens, NPE for binary

Smile

  • #831: Non-blocking Smile parser reports wrong currentLocation() / currentTokenLocation() byte offsets
  • #834: SmileGenerator silently writes wrong BigDecimal scale outside [-2^30, 2^30-1]
  • #835: SmileParser.getText(Writer) writes stale text for numeric tokens
  • #838: Non-blocking Smile parser requires a header after a root-level scalar value (rejects end marker, following root values)

TOML

  • #696: TomlMapper writes NaN/Infinity as bare tokens, producing TOML it cannot read back
  • #894: Read stream to end for negative length in writeBinary(InputStream)
  • #899: Return null from nextStringValue() at end of input

Changes, Other modules

Java 8 Date/time

  • #76: Missing milliseconds when serializing Java 8 date-time if they are zeros (add JavaTimeFeature.ALWAYS_WRITE_SUBSECOND_DIGITS)

Clone this wiki locally