You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2014/05/31 16:35:01 UTC

[jira] [Commented] (AXIOM-394) Axiom should not allow creation of SOAPFaultSubCode elements for SOAP 1.1

    [ https://issues.apache.org/jira/browse/AXIOM-394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14014668#comment-14014668 ] 

Hudson commented on AXIOM-394:
------------------------------

SUCCESS: Integrated in ws-axiom-trunk #1802 (See [https://builds.apache.org/job/ws-axiom-trunk/1802/])
AXIOM-394: Don't allow creation of SOAP elements (SOAP fault values, sub codes and texts) that are not meaningful in SOAP 1.1. (veithen: rev 1598867)
* /webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/soap/SOAPFaultCodeTestBase.java
* /webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/soap/SOAPFaultSubCodeTestCase.java
* /webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPFaultCodeImpl.java
* /webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11Factory.java
* /webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11FaultCodeImpl.java
* /webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11FaultSubCodeImpl.java
* /webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11FaultTextImpl.java
* /webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11FaultValueImpl.java
* /webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12FaultCodeImpl.java
* /webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPFaultCodeImpl.java
* /webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11Factory.java
* /webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11FaultCodeImpl.java
* /webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11FaultSubCodeImpl.java
* /webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11FaultValueImpl.java
* /webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12FaultCodeImpl.java
* /webservices/axiom/trunk/modules/axiom-tests/src/test/java/org/apache/axiom/soap/SOAPFaultTextTestBase.java
* /webservices/axiom/trunk/modules/axiom-tests/src/test/java/org/apache/axiom/soap/SOAPFaultValueTestBase.java


> Axiom should not allow creation of SOAPFaultSubCode elements for SOAP 1.1
> -------------------------------------------------------------------------
>
>                 Key: AXIOM-394
>                 URL: https://issues.apache.org/jira/browse/AXIOM-394
>             Project: Axiom
>          Issue Type: Bug
>          Components: API
>    Affects Versions: 1.2.12
>            Reporter: Andreas Veithen
>            Priority: Minor
>             Fix For: 1.2.15
>
>
> Axiom currently allows creating and adding SOAPFaultSubCode elements to SOAP 1.1 faults, although the concept of subcode doesn't exist in SOAP 1.1. To avoid generating invalid SOAP messages, the SOAP11FaultCodeImpl classes in LLOM and DOOM override the internalSerialize method to silently skip the SOAPFaultSubCode node. However, the element is still visible when requesting an XMLStreamReader or a SAXSource. 
> This can be shown using the following code:
> SOAPFactory factory = OMAbstractFactory.getSOAP11Factory();
> SOAPFault fault = factory.createSOAPFault();
> SOAPFaultCode code = factory.createSOAPFaultCode(fault);
> factory.createSOAPFaultSubCode(code);
> System.out.println("Using serialize:"); 
> fault.serialize(System.out);
> System.out.println();
> System.out.println("Using pull parser:"); 
> XMLStreamWriter writer = StAXUtils.createXMLStreamWriter(System.out); 
> new StreamingOMSerializer().serialize(fault.getXMLStreamReader(), writer); 
> writer.close();
> System.out.println();
> System.out.println("Using SAXSource:");
> TransformerFactory.newInstance().newTransformer().transform(fault.getSAXSource(true), new StreamResult(System.out));
> The output is:
> Using serialize:
> <soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><faultcode></faultcode></soapenv:Fault>
> Using pull parser:
> <soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><faultcode><Subcode /></faultcode></soapenv:Fault>
> Using SAXSource:
> <?xml version="1.0" encoding="UTF-8"?><soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><faultcode><Subcode/></faultcode></soapenv:Fault>
> This behavior is inconsistent and Axiom should forbid creating SOAPFaultSubCode objects for SOAP 1.1.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org