[
https://issues.apache.org/jira/browse/CXF-2212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Kulp resolved CXF-2212.
------------------------------
Resolution: Fixed
Fix Version/s: 2.0.12
Assignee: Daniel Kulp
Patch semi-applied. I changed it to not use the NodeList (NodeLists are not
thread safe and have a huge performance penalty in most cases), but the test
remained the same.
> SAAJInInterceptor creates a SAAJ SOAPFault with only one "Detail" child
> -----------------------------------------------------------------------
>
> Key: CXF-2212
> URL: https://issues.apache.org/jira/browse/CXF-2212
> Project: CXF
> Issue Type: Bug
> Components: Soap Binding
> Affects Versions: 2.1.5, 2.2.1
> Reporter: Colm O hEigeartaigh
> Assignee: Daniel Kulp
> Fix For: 2.0.12, 2.1.6, 2.2.2
>
> Attachments: cxf_2212.patch
>
>
> The SAAJInInterceptor creates a SAAJ SOAPFault with only one "Detail" child.
> For example, if a SOAP Fault is received with:
> <detail><errorcode>3</errorcode><errorstring>This is a fault detail error
> string</errorstring></detail>
> The following code in SAAJInInterceptor will only add a detail element with a
> single child element to the SOAPFault object that is created:
> soapFault.addDetail().appendChild(
> soapMessage.getSOAPPart().importNode(
> fault.getDetail().getFirstChild(), true));
> And so the output will be:
> <detail><errorcode>3</errorcode></detail>
> This is clearly a bug, as the SOAP specs allow for multiple detail child
> elements. Even worse, it doesn't take into account the fact that
> fault.getDetail() could be of type e.g Node.TEXT, and it could just end up
> adding a newline character.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.