From f4b28867753d32f2466a571b6eb188920fe4f901 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 19 Jul 2024 10:13:13 +0200 Subject: [PATCH] Polish "Support JAXBElement in Jaxb2RootElementHttpMessageConverter" See gh-33233 --- .../Jaxb2RootElementHttpMessageConverter.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter.java index 9bd7b64672..ee11dec759 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverter.java @@ -121,7 +121,9 @@ public class Jaxb2RootElementHttpMessageConverter extends AbstractJaxb2HttpMessa @Override public boolean canWrite(Class clazz, @Nullable MediaType mediaType) { - return ((JAXBElement.class.isAssignableFrom(clazz) || AnnotationUtils.findAnnotation(clazz, XmlRootElement.class) != null) && canWrite(mediaType)); + boolean supportedType = (JAXBElement.class.isAssignableFrom(clazz) || + AnnotationUtils.findAnnotation(clazz, XmlRootElement.class) != null); + return (supportedType && canWrite(mediaType)); } @Override @@ -190,12 +192,12 @@ public class Jaxb2RootElementHttpMessageConverter extends AbstractJaxb2HttpMessa } @Override - protected void writeToResult(Object o, HttpHeaders headers, Result result) throws Exception { + protected void writeToResult(Object value, HttpHeaders headers, Result result) throws Exception { try { - Class clazz = getMarshallerType(o); + Class clazz = getMarshallerType(value); Marshaller marshaller = createMarshaller(clazz); setCharset(headers.getContentType(), marshaller); - marshaller.marshal(o, result); + marshaller.marshal(value, result); } catch (MarshalException ex) { throw ex; @@ -205,12 +207,12 @@ public class Jaxb2RootElementHttpMessageConverter extends AbstractJaxb2HttpMessa } } - private static Class getMarshallerType(Object o) { - if (o instanceof JAXBElement jaxbElement) { + private static Class getMarshallerType(Object value) { + if (value instanceof JAXBElement jaxbElement) { return jaxbElement.getDeclaredType(); } else { - return ClassUtils.getUserClass(o); + return ClassUtils.getUserClass(value); } }