Merge branch '6.1.x'
This commit is contained in:
commit
ccc0a54c1c
|
|
@ -93,7 +93,7 @@ public class Jaxb2XmlEncoder extends AbstractSingleValueEncoder<Object> {
|
|||
Class<?> outputClass = elementType.toClass();
|
||||
return (outputClass.isAnnotationPresent(XmlRootElement.class) ||
|
||||
outputClass.isAnnotationPresent(XmlType.class) ||
|
||||
elementType.isAssignableFrom(JAXBElement.class));
|
||||
JAXBElement.class.isAssignableFrom(outputClass));
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package org.springframework.http.codec.xml;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
|
@ -43,6 +44,7 @@ import static org.springframework.core.ResolvableType.forClass;
|
|||
import static org.springframework.core.io.buffer.DataBufferUtils.release;
|
||||
|
||||
/**
|
||||
* Tests for {@link Jaxb2XmlEncoder}.
|
||||
* @author Sebastien Deleuze
|
||||
* @author Arjen Poutsma
|
||||
*/
|
||||
|
|
@ -64,6 +66,7 @@ class Jaxb2XmlEncoderTests extends AbstractEncoderTests<Jaxb2XmlEncoder> {
|
|||
assertThat(this.encoder.canEncode(forClass(getClass()), MediaType.APPLICATION_XML)).isFalse();
|
||||
|
||||
assertThat(this.encoder.canEncode(forClass(JAXBElement.class), MediaType.APPLICATION_XML)).isTrue();
|
||||
assertThat(this.encoder.canEncode(forClass(JAXBElementSubclass.class), MediaType.APPLICATION_XML)).isTrue();
|
||||
|
||||
// SPR-15464
|
||||
assertThat(this.encoder.canEncode(ResolvableType.NONE, null)).isFalse();
|
||||
|
|
@ -122,6 +125,17 @@ class Jaxb2XmlEncoderTests extends AbstractEncoderTests<Jaxb2XmlEncoder> {
|
|||
};
|
||||
}
|
||||
|
||||
public static class JAXBElementSubclass extends JAXBElement<Pojo> {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
protected static final QName NAME = new QName("http://foo/schema/common/1.0", "Pojo");
|
||||
|
||||
public JAXBElementSubclass() {
|
||||
super(NAME, Pojo.class, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Model {}
|
||||
|
||||
public static class Foo extends Model {
|
||||
|
|
|
|||
Loading…
Reference in New Issue