Jackson Release 3.1 (original) (raw)

Jackson Version 3.1 is a Major New version, released on February 23, 2026. One release candidate (3.1.0-rc1) was released prior to official 3.1.0.

This wiki page gives a list of links to all changes (with brief descriptions) that are included, as well as about original plans for bigger changes (and in some cases changes to plans, postponing).

Status

Branch is open for patch releases..

Branch is designated a Long-Term-Support (LTS) version and is thereby expected to remain open for at least 2 years after 3.1.0 release.

Patches

Pre-releases

Following pre-release versions were released:

Documentation

Articles, Blog posts

New Modules

Changes, packaging

Changes, compatibility

Android

Same as Jackson 3.0:

JDK

Same as Jackson 3.0: JDK 17

Kotlin

Same as Jackson 3.0?

Changes, behavior

Missing/absent AtomicReference deserialization

With databind#5350 -- addition of DeserializationFeature.USE_NULL_FOR_MISSING_REFERENCE_VALUES -- the default deserialization behavior of AtomicReference<T> changes to same as that of Optional<T>:

Processing limits

With #1538 default StreamReadConstraints.maxStringLength increases from 20M to 100M.

Changes to JsonNode logic

databind#5558: Changes defaulting of JsonNode.asXxx(defaultValue)/JsonNode.asXxxOpt() methods for NullNode (JSON null values): * nulls will work more like "missing node" and return 'default value' when one given

JAX-RS / Jakarta-RS Providers

Matching of missing Media-Type

Change to by default NOT match empty/missing Media-Type header. Blind matching can be re-enabled with:

// JAX-RS
JacksonJsonProvider prov = new JacksonJsonProvider();
prov.enable(JaxRSFeature.MATCH_ALL_IF_NO_MEDIA_TYPE);

// Jakarta-RS
JacksonJsonProvider prov = new JacksonJsonProvider();
prov.enable(JakartaRSFeature.MATCH_ALL_IF_NO_MEDIA_TYPE);

Major focus area(s)

Finalize default configuration, behavior, for 3.x series

Although we tried to establish stable baseline for default settings, behavior, for 3.0.0 GA, some things were missed. Goal for 3.1 is to make last changes we need to minimize disruptions with later 3.x minor versions.

Bug fix, bug fixes, bug fixes

With 3.0.0 out of the way, issue backlog for components -- and especially jackson-databind -- had grown quite a bit. So major focus was on fixing things, at expense of adding new features.

Most wanted Issues resolved

Issues with at least 5 thumbs-ups that were resolved in this version


Full Change list

Changes, core

Annotations

No separate 3.x versions released, uses jackson-annotations 2.21.

Streaming

Databind

Changes, dataformats

Avro

CBOR

CSV

Ion

Protobuf

Smile

TOML

XML

YAML

Changes, data types

Guava

Eclipse-collections

Hibernate

Joda Money

Changes, Other modules

Afterburner

Blackbird

JSON Schema

Mr Bean

Changes, Providers

JAX-RS Providers

Jakarta-RS Providers

Changes, JVM Languages

Kotlin

Scala

Changes, other

N/A