From 94536b0428da0f14396e5c82566020a3ccc8c37f Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 3 Mar 2026 11:30:15 +0000 Subject: [PATCH] Upgrade to Jackson 2.21.2 The Jackson team have ended support for Jackson 2.19.x (and 2.20.x). In response to this, this commit upgrades to Jackson 2.21.2. 2.21.x is designated as an LTS release so future minor upgrades should not be necessary. Closes gh-49365 --- gradle.properties | 2 +- .../properties/ConfigurationPropertiesReportEndpoint.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 0ebffc19bf2..c77990cd337 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ checkstyleToolVersion=10.12.4 commonsCodecVersion=1.18.0 graalVersion=22.3 hamcrestVersion=3.0 -jacksonVersion=2.19.4 +jacksonVersion=2.21.2 javaFormatVersion=0.0.47 junitJupiterVersion=5.12.2 kotlinVersion=1.9.25 diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/context/properties/ConfigurationPropertiesReportEndpoint.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/context/properties/ConfigurationPropertiesReportEndpoint.java index 7bf7036efad..f6b90d84985 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/context/properties/ConfigurationPropertiesReportEndpoint.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/context/properties/ConfigurationPropertiesReportEndpoint.java @@ -180,13 +180,19 @@ public class ConfigurationPropertiesReportEndpoint implements ApplicationContext builder.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); builder.configure(SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS, false); builder.configure(MapperFeature.USE_STD_BEAN_NAMING, true); - builder.serializationInclusion(Include.NON_NULL); + configureInclusion(builder); applyConfigurationPropertiesFilter(builder); applySerializationModifier(builder); builder.addModule(new JavaTimeModule()); builder.addModule(new ConfigurationPropertiesModule()); } + @SuppressWarnings("deprecation") + private void configureInclusion(JsonMapper.Builder builder) { + // Avoid using defaultPropertyInclusion to retain compatibility with Jackson 2.19. + builder.serializationInclusion(Include.NON_NULL); + } + private void applyConfigurationPropertiesFilter(JsonMapper.Builder builder) { builder.annotationIntrospector(new ConfigurationPropertiesAnnotationIntrospector()); builder