You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Gary D. Gregory (JIRA)" <ji...@apache.org> on 2012/10/02 15:13:07 UTC

[jira] [Created] (CXF-4535) SOAP fault XML is invalid when a details element exists

Gary D. Gregory created CXF-4535:
------------------------------------

             Summary: SOAP fault XML is invalid when a details element exists
                 Key: CXF-4535
                 URL: https://issues.apache.org/jira/browse/CXF-4535
             Project: CXF
          Issue Type: Bug
    Affects Versions: 2.6.2
         Environment: Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500)
Maven home: C:\Java\apache-maven-3.0.4\bin\..
Java version: 1.6.0_35, vendor: Sun Microsystems Inc.
Java home: C:\Program Files\Java\jdk1.6.0_35\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
            Reporter: Gary D. Gregory


If you add a details element to a SOAP fault, you will get invalid XML.

For example, this code:
{code:java}
final SoapFault fault = new SoapFault(shortMessage, Soap11.getInstance().getReceiver());
fault.setRole(operationName);
final org.w3c.dom.Element detailElt = fault.getOrCreateDetail();
final Document ownerDocument = detailElt.getOwnerDocument();
final org.w3c.dom.Element longDescElt = ownerDocument.createElementNS(_TARGET_NAMESPACE, "longDescription");
final org.w3c.dom.Element errorCodeElt = ownerDocument.createElementNS(_TARGET_NAMESPACE, "ErrorCode");
            longDescElt.setTextContent(longMessage);
{code}

Produces XML like:
{code:xml}
<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <ais:requestID xmlns:ais="http://com.seagullsw.appinterface/AppInterfaceServer">{c0a80102-00ce16ad0000010e75da25398002}</ais:requestID>
  </soap:Header>
  <soap:Body>
    <soap:Fault>
      <faultcode>soap:Server</faultcode>
      <faultstring>blah.</faultstring>
      <detail>
        <longDescription xmlns="http://com.seagullsw.appinterface/AppInterfaceServer">blah blah.</longDescription>
        <ErrorCode xmlns="http://com.seagullsw.appinterface/AppInterfaceServer">-7</ErrorCode>
      </detail>
      <faultactor>test.exception</faultactor>
    </soap:Fault>
  </soap:Body>
</soap:Envelope>
{code}

Instead of:

{code:xml}
<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <ais:requestID xmlns:ais="http://com.seagullsw.appinterface/AppInterfaceServer">{c0a80102-00ce16ad0000010e75da25398002}</ais:requestID>
  </soap:Header>
  <soap:Body>
    <soap:Fault>
      <faultcode>soap:Server</faultcode>
      <faultstring>blah.</faultstring>
      <faultactor>test.exception</faultactor>
      <detail>
        <longDescription xmlns="http://com.seagullsw.appinterface/AppInterfaceServer">blah blah.</longDescription>
        <ErrorCode xmlns="http://com.seagullsw.appinterface/AppInterfaceServer">-7</ErrorCode>
      </detail>
    </soap:Fault>
  </soap:Body>
</soap:Envelope>
{code}
The {{detail}} element MUST be last.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (CXF-4535) SOAP fault XML is invalid when a details element exists

Posted by "Gary D. Gregory (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-4535?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary D. Gregory updated CXF-4535:
---------------------------------

    Attachment: fix-invalid-soap-fault.diff

Patch to 2.6 branch.
                
> SOAP fault XML is invalid when a details element exists
> -------------------------------------------------------
>
>                 Key: CXF-4535
>                 URL: https://issues.apache.org/jira/browse/CXF-4535
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.6.2
>         Environment: Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500)
> Maven home: C:\Java\apache-maven-3.0.4\bin\..
> Java version: 1.6.0_35, vendor: Sun Microsystems Inc.
> Java home: C:\Program Files\Java\jdk1.6.0_35\jre
> Default locale: en_US, platform encoding: Cp1252
> OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
>            Reporter: Gary D. Gregory
>         Attachments: fix-invalid-soap-fault.diff
>
>
> If you add a details element to a SOAP fault, you will get invalid XML.
> For example, this code:
> {code:java}
> final SoapFault fault = new SoapFault(shortMessage, Soap11.getInstance().getReceiver());
> fault.setRole(operationName);
> final org.w3c.dom.Element detailElt = fault.getOrCreateDetail();
> final Document ownerDocument = detailElt.getOwnerDocument();
> final org.w3c.dom.Element longDescElt = ownerDocument.createElementNS(_TARGET_NAMESPACE, "longDescription");
> final org.w3c.dom.Element errorCodeElt = ownerDocument.createElementNS(_TARGET_NAMESPACE, "ErrorCode");
>             longDescElt.setTextContent(longMessage);
> {code}
> Produces XML like:
> {code:xml}
> <?xml version='1.0' encoding='UTF-8'?>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>   <soap:Header>
>     <ais:requestID xmlns:ais="http://com.seagullsw.appinterface/AppInterfaceServer">{c0a80102-00ce16ad0000010e75da25398002}</ais:requestID>
>   </soap:Header>
>   <soap:Body>
>     <soap:Fault>
>       <faultcode>soap:Server</faultcode>
>       <faultstring>blah.</faultstring>
>       <detail>
>         <longDescription xmlns="http://com.seagullsw.appinterface/AppInterfaceServer">blah blah.</longDescription>
>         <ErrorCode xmlns="http://com.seagullsw.appinterface/AppInterfaceServer">-7</ErrorCode>
>       </detail>
>       <faultactor>test.exception</faultactor>
>     </soap:Fault>
>   </soap:Body>
> </soap:Envelope>
> {code}
> Instead of:
> {code:xml}
> <?xml version='1.0' encoding='UTF-8'?>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>   <soap:Header>
>     <ais:requestID xmlns:ais="http://com.seagullsw.appinterface/AppInterfaceServer">{c0a80102-00ce16ad0000010e75da25398002}</ais:requestID>
>   </soap:Header>
>   <soap:Body>
>     <soap:Fault>
>       <faultcode>soap:Server</faultcode>
>       <faultstring>blah.</faultstring>
>       <faultactor>test.exception</faultactor>
>       <detail>
>         <longDescription xmlns="http://com.seagullsw.appinterface/AppInterfaceServer">blah blah.</longDescription>
>         <ErrorCode xmlns="http://com.seagullsw.appinterface/AppInterfaceServer">-7</ErrorCode>
>       </detail>
>     </soap:Fault>
>   </soap:Body>
> </soap:Envelope>
> {code}
> The {{detail}} element MUST be last.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Resolved] (CXF-4535) SOAP fault XML is invalid when a details element exists

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-4535?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-4535.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.7.0
                   2.6.3
                   2.5.6
                   2.4.10
         Assignee: Daniel Kulp


Patch applied
                
> SOAP fault XML is invalid when a details element exists
> -------------------------------------------------------
>
>                 Key: CXF-4535
>                 URL: https://issues.apache.org/jira/browse/CXF-4535
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.6.2
>         Environment: Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500)
> Maven home: C:\Java\apache-maven-3.0.4\bin\..
> Java version: 1.6.0_35, vendor: Sun Microsystems Inc.
> Java home: C:\Program Files\Java\jdk1.6.0_35\jre
> Default locale: en_US, platform encoding: Cp1252
> OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
>            Reporter: Gary D. Gregory
>            Assignee: Daniel Kulp
>             Fix For: 2.4.10, 2.5.6, 2.6.3, 2.7.0
>
>         Attachments: fix-invalid-soap-fault.diff
>
>
> If you add a details element to a SOAP fault, you will get invalid XML.
> For example, this code:
> {code:java}
> final SoapFault fault = new SoapFault(shortMessage, Soap11.getInstance().getReceiver());
> fault.setRole(operationName);
> final org.w3c.dom.Element detailElt = fault.getOrCreateDetail();
> final Document ownerDocument = detailElt.getOwnerDocument();
> final org.w3c.dom.Element longDescElt = ownerDocument.createElementNS(_TARGET_NAMESPACE, "longDescription");
> final org.w3c.dom.Element errorCodeElt = ownerDocument.createElementNS(_TARGET_NAMESPACE, "ErrorCode");
>             longDescElt.setTextContent(longMessage);
> {code}
> Produces XML like:
> {code:xml}
> <?xml version='1.0' encoding='UTF-8'?>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>   <soap:Header>
>     <ais:requestID xmlns:ais="http://com.seagullsw.appinterface/AppInterfaceServer">{c0a80102-00ce16ad0000010e75da25398002}</ais:requestID>
>   </soap:Header>
>   <soap:Body>
>     <soap:Fault>
>       <faultcode>soap:Server</faultcode>
>       <faultstring>blah.</faultstring>
>       <detail>
>         <longDescription xmlns="http://com.seagullsw.appinterface/AppInterfaceServer">blah blah.</longDescription>
>         <ErrorCode xmlns="http://com.seagullsw.appinterface/AppInterfaceServer">-7</ErrorCode>
>       </detail>
>       <faultactor>test.exception</faultactor>
>     </soap:Fault>
>   </soap:Body>
> </soap:Envelope>
> {code}
> Instead of:
> {code:xml}
> <?xml version='1.0' encoding='UTF-8'?>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>   <soap:Header>
>     <ais:requestID xmlns:ais="http://com.seagullsw.appinterface/AppInterfaceServer">{c0a80102-00ce16ad0000010e75da25398002}</ais:requestID>
>   </soap:Header>
>   <soap:Body>
>     <soap:Fault>
>       <faultcode>soap:Server</faultcode>
>       <faultstring>blah.</faultstring>
>       <faultactor>test.exception</faultactor>
>       <detail>
>         <longDescription xmlns="http://com.seagullsw.appinterface/AppInterfaceServer">blah blah.</longDescription>
>         <ErrorCode xmlns="http://com.seagullsw.appinterface/AppInterfaceServer">-7</ErrorCode>
>       </detail>
>     </soap:Fault>
>   </soap:Body>
> </soap:Envelope>
> {code}
> The {{detail}} element MUST be last.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira