From a39adff3eb7044e0bf3ac82cf670ad83ece94e7a Mon Sep 17 00:00:00 2001 From: Maurice Zeijen Date: Fri, 21 Nov 2025 15:46:42 +0100 Subject: [PATCH] Corrected ProblemDetail mixin for XmlMapper.Builder The ProblemDetailXmlMapperBuilderCustomizer applied the wrong ProblemDetail mixin for the Jackson XmlMapper. Namely the ProblemDetailJacksonMixin, which is intended for JSON. Now the ProblemDetailJacksonXmlMixin is used instead. The corresponding test also tested for the wrong XML output, which has been adjusted. Fixes gh-48222 Signed-off-by: Maurice Zeijen --- .../boot/jackson/autoconfigure/JacksonAutoConfiguration.java | 3 ++- .../jackson/autoconfigure/JacksonAutoConfigurationTests.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/module/spring-boot-jackson/src/main/java/org/springframework/boot/jackson/autoconfigure/JacksonAutoConfiguration.java b/module/spring-boot-jackson/src/main/java/org/springframework/boot/jackson/autoconfigure/JacksonAutoConfiguration.java index 8371031547d..d0781af87c6 100644 --- a/module/spring-boot-jackson/src/main/java/org/springframework/boot/jackson/autoconfigure/JacksonAutoConfiguration.java +++ b/module/spring-boot-jackson/src/main/java/org/springframework/boot/jackson/autoconfigure/JacksonAutoConfiguration.java @@ -66,6 +66,7 @@ import org.springframework.context.annotation.Scope; import org.springframework.core.Ordered; import org.springframework.http.ProblemDetail; import org.springframework.http.converter.json.ProblemDetailJacksonMixin; +import org.springframework.http.converter.json.ProblemDetailJacksonXmlMixin; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; import org.springframework.util.ReflectionUtils; @@ -282,7 +283,7 @@ public final class JacksonAutoConfiguration { @Override public void customize(XmlMapper.Builder builder) { - builder.addMixIn(ProblemDetail.class, ProblemDetailJacksonMixin.class); + builder.addMixIn(ProblemDetail.class, ProblemDetailJacksonXmlMixin.class); } } diff --git a/module/spring-boot-jackson/src/test/java/org/springframework/boot/jackson/autoconfigure/JacksonAutoConfigurationTests.java b/module/spring-boot-jackson/src/test/java/org/springframework/boot/jackson/autoconfigure/JacksonAutoConfigurationTests.java index 37c811cdb5b..2101a96a4d0 100644 --- a/module/spring-boot-jackson/src/test/java/org/springframework/boot/jackson/autoconfigure/JacksonAutoConfigurationTests.java +++ b/module/spring-boot-jackson/src/test/java/org/springframework/boot/jackson/autoconfigure/JacksonAutoConfigurationTests.java @@ -691,7 +691,7 @@ class JacksonAutoConfigurationTests { problemDetail.setProperty("spring", "boot"); String xml = mapper.writeValueAsString(problemDetail); assertThat(xml).isEqualTo( - "404Not Foundboot"); + "404Not Foundboot"); }); }