Fixed Jaxb2Marshaller's partial unmarshalling feature to consistently apply to all sources
Issue: SPR-10282
This commit is contained in:
parent
dc9fee0b5c
commit
283b3ee44b
|
@ -720,7 +720,7 @@ public class Jaxb2Marshaller
|
||||||
return unmarshalStaxSource(unmarshaller, source);
|
return unmarshalStaxSource(unmarshaller, source);
|
||||||
}
|
}
|
||||||
else if (this.mappedClass != null) {
|
else if (this.mappedClass != null) {
|
||||||
return unmarshaller.unmarshal(source, this.mappedClass);
|
return unmarshaller.unmarshal(source, this.mappedClass).getValue();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return unmarshaller.unmarshal(source);
|
return unmarshaller.unmarshal(source);
|
||||||
|
@ -734,12 +734,16 @@ public class Jaxb2Marshaller
|
||||||
protected Object unmarshalStaxSource(Unmarshaller jaxbUnmarshaller, Source staxSource) throws JAXBException {
|
protected Object unmarshalStaxSource(Unmarshaller jaxbUnmarshaller, Source staxSource) throws JAXBException {
|
||||||
XMLStreamReader streamReader = StaxUtils.getXMLStreamReader(staxSource);
|
XMLStreamReader streamReader = StaxUtils.getXMLStreamReader(staxSource);
|
||||||
if (streamReader != null) {
|
if (streamReader != null) {
|
||||||
return jaxbUnmarshaller.unmarshal(streamReader);
|
return (this.mappedClass != null ?
|
||||||
|
jaxbUnmarshaller.unmarshal(streamReader, this.mappedClass).getValue() :
|
||||||
|
jaxbUnmarshaller.unmarshal(streamReader));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
XMLEventReader eventReader = StaxUtils.getXMLEventReader(staxSource);
|
XMLEventReader eventReader = StaxUtils.getXMLEventReader(staxSource);
|
||||||
if (eventReader != null) {
|
if (eventReader != null) {
|
||||||
return jaxbUnmarshaller.unmarshal(eventReader);
|
return (this.mappedClass != null ?
|
||||||
|
jaxbUnmarshaller.unmarshal(eventReader, this.mappedClass).getValue() :
|
||||||
|
jaxbUnmarshaller.unmarshal(eventReader));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw new IllegalArgumentException("StaxSource contains neither XMLStreamReader nor XMLEventReader");
|
throw new IllegalArgumentException("StaxSource contains neither XMLStreamReader nor XMLEventReader");
|
||||||
|
|
Loading…
Reference in New Issue