[ https://issues.apache.org/jira/browse/CXF-6983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15398961#comment-15398961 ]
ASF GitHub Bot commented on CXF-6983: ------------------------------------- GitHub user mikegolod opened a pull request: https://github.com/apache/cxf/pull/148 [CXF-6983] AbstractJAXBProvider#handleJAXBException doubles error text You can merge this pull request into a Git repository by running: $ git pull https://github.com/mikegolod/cxf CXF-6983 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/cxf/pull/148.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #148 ---- commit f92a7182bed353670bbb307d692b08c4ef8f2b0f Author: Mikhail Golod <mikhail.go...@gmail.com> Date: 2016-07-29T08:31:53Z [CXF-6983] AbstractJAXBProvider#handleJAXBException doubles error text for unmarshalling errors ---- > org.apache.cxf.jaxrs.provider.AbstractJAXBProvider#handleJAXBException > doubles the error text for unmarshalling errors > ---------------------------------------------------------------------------------------------------------------------- > > Key: CXF-6983 > URL: https://issues.apache.org/jira/browse/CXF-6983 > Project: CXF > Issue Type: Improvement > Components: JAX-RS > Affects Versions: 3.1.6 > Environment: CXF 3.1.6 with JAXB annotated beans > Reporter: Mike Golod > Priority: Trivial > > When unmarshal json payload to JAXB annotated bean sometimes we can get an > UnmarshallingException (e.g. for dates). That exception already contains very > descriptive message. AbstractJAXBProvider#handleExceptionStart extracts it. > Then in AbstractJAXBProvider#handleJAXBException: > {code:title=AbstractJAXBProvider#handleJAXBException} > if (linked != null && linked.getMessage() != null) { > Throwable cause = linked; > while (read && cause != null) { > if (cause instanceof XMLStreamException && > cause.getMessage().startsWith("Maximum Number")) { > throw ExceptionUtils.toWebApplicationException(null, > JAXRSUtils.toResponse(413)); > } > if (cause instanceof DepthExceededStaxException) { > throw ExceptionUtils.toWebApplicationException(null, > JAXRSUtils.toResponse(413)); > } > cause = cause.getCause(); > } > sb.append(linked.getMessage()).append(". "); // this causes the > problem > } > {code} > This code adds another message from linked exception. Message text is the > same. Finally we get something like: > {quote} > JAXBException occured: <error text>. <error text>. > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)