From e55a730ea0c641f9917bbe9e2c1780edb3e7c4f4 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 9 Jul 2024 13:05:05 +0100 Subject: [PATCH] Upgrade to Gson 2.11.0 Closes gh-41407 --- .../boot/autoconfigure/gson/GsonAutoConfiguration.java | 3 ++- .../autoconfigure/gson/GsonAutoConfigurationTests.java | 7 ++++--- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfiguration.java index 94ed69c745..d61e9a270e 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfiguration.java @@ -20,6 +20,7 @@ import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.google.gson.Strictness; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -92,7 +93,7 @@ public class GsonAutoConfiguration { map.from(properties::getLongSerializationPolicy).to(builder::setLongSerializationPolicy); map.from(properties::getFieldNamingPolicy).to(builder::setFieldNamingPolicy); map.from(properties::getPrettyPrinting).whenTrue().toCall(builder::setPrettyPrinting); - map.from(properties::getLenient).whenTrue().toCall(builder::setLenient); + map.from(properties::getLenient).whenTrue().toCall(() -> builder.setStrictness(Strictness.LENIENT)); map.from(properties::getDisableHtmlEscaping).whenTrue().toCall(builder::disableHtmlEscaping); map.from(properties::getDateFormat).to(builder::setDateFormat); } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfigurationTests.java index 179280d8d1..7481a5b528 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/gson/GsonAutoConfigurationTests.java @@ -28,6 +28,7 @@ import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.LongSerializationPolicy; +import com.google.gson.Strictness; import org.junit.jupiter.api.Test; import org.skyscreamer.jsonassert.JSONAssert; @@ -212,7 +213,7 @@ class GsonAutoConfigurationTests { void withoutLenient() { this.contextRunner.run((context) -> { Gson gson = context.getBean(Gson.class); - assertThat(gson).hasFieldOrPropertyWithValue("lenient", false); + assertThat(gson).hasFieldOrPropertyWithValue("strictness", null); }); } @@ -220,7 +221,7 @@ class GsonAutoConfigurationTests { void withLenientTrue() { this.contextRunner.withPropertyValues("spring.gson.lenient:true").run((context) -> { Gson gson = context.getBean(Gson.class); - assertThat(gson).hasFieldOrPropertyWithValue("lenient", true); + assertThat(gson).hasFieldOrPropertyWithValue("strictness", Strictness.LENIENT); }); } @@ -228,7 +229,7 @@ class GsonAutoConfigurationTests { void withLenientFalse() { this.contextRunner.withPropertyValues("spring.gson.lenient:false").run((context) -> { Gson gson = context.getBean(Gson.class); - assertThat(gson).hasFieldOrPropertyWithValue("lenient", false); + assertThat(gson).hasFieldOrPropertyWithValue("strictness", null); }); } diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index dde4a487fd..7800837a84 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -471,7 +471,7 @@ bom { site("https://groovy-lang.org") } } - library("Gson", "2.10.1") { + library("Gson", "2.11.0") { group("com.google.code.gson") { modules = [ "gson"