Repository: cxf Updated Branches: refs/heads/master 8a0212895 -> 54aedd70f
[CXF-7368] Ignoring some well known types Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/54aedd70 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/54aedd70 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/54aedd70 Branch: refs/heads/master Commit: 54aedd70f2e81702acab2682c520fe04c3ad1dc3 Parents: 8a02128 Author: Sergey Beryozkin <sberyoz...@gmail.com> Authored: Fri May 12 10:59:09 2017 +0100 Committer: Sergey Beryozkin <sberyoz...@gmail.com> Committed: Fri May 12 10:59:09 2017 +0100 ---------------------------------------------------------------------- .../apache/cxf/jaxrs/provider/AbstractJAXBProvider.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/54aedd70/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java ---------------------------------------------------------------------- diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java index 5871cd2..5edc28d 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java @@ -39,6 +39,7 @@ import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response; +import javax.ws.rs.core.StreamingOutput; import javax.ws.rs.ext.ContextResolver; import javax.ws.rs.ext.MessageBodyReader; import javax.ws.rs.ext.MessageBodyWriter; @@ -89,8 +90,10 @@ public abstract class AbstractJAXBProvider<T> extends AbstractConfigurableProvid protected static final String NS_MAPPER_PROPERTY_RI_INT = "com.sun.xml.internal.bind.namespacePrefixMapper"; private static final String JAXB_DEFAULT_NAMESPACE = "##default"; private static final String JAXB_DEFAULT_NAME = "##default"; - - + private static final Set<Class<?>> UNSUPPORTED_CLASSES = + new HashSet<Class<?>>(Arrays.asList(InputStream.class, + OutputStream.class, + StreamingOutput.class)); protected Set<Class<?>> collectionContextClasses = new HashSet<Class<?>>(); protected Map<String, String> jaxbElementClassMap = Collections.emptyMap(); @@ -331,7 +334,6 @@ public abstract class AbstractJAXBProvider<T> extends AbstractConfigurableProvid return false; } } - return marshalAsJaxbElement && (!xmlTypeAsJaxbElementOnly || isXmlType(type)) || isSupported(type, genericType, anns); } @@ -562,6 +564,9 @@ public abstract class AbstractJAXBProvider<T> extends AbstractConfigurableProvid || isSkipJaxbChecks()) { return true; } + if (UNSUPPORTED_CLASSES.contains(type)) { + return false; + } return isXmlRoot(type) || JAXBElement.class.isAssignableFrom(type) || objectFactoryOrIndexAvailable(type)