You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2016/07/29 08:34:20 UTC
[jira] [Commented] (CXF-6983)
org.apache.cxf.jaxrs.provider.AbstractJAXBProvider#handleJAXBException
doubles the error text for unmarshalling errors
[ 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 <mi...@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)