[ 
https://issues.apache.org/jira/browse/AXIS2C-1507?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Lazarski resolved AXIS2C-1507.
-------------------------------------
    Resolution: Fixed

   When axiom_soap_body_convert_fault_to_soap11() converts a SOAP 1.2 fault
    to SOAP 1.1 format, it merges the nested structure (Code > Value > text)
    into the flat SOAP 1.1 structure (faultcode > text). It was setting the
    fault_value and fault_text base nodes to NULL after freeing the child
    nodes.
    
    This caused axiom_soap_fault_value_get_text() and
    axiom_soap_fault_text_get_text() to return NULL after conversion, even
    though the text was correctly copied to the parent element.
    
    Fix: Instead of setting base nodes to NULL, point them to the parent
    elements (faultcode and faultstring respectively) where the text was
    copied. This allows users to retrieve the fault text through the
    expected API after conversion.


> SOAP Exception fields not available
> -----------------------------------
>
>                 Key: AXIS2C-1507
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-1507
>             Project: Axis2-C
>          Issue Type: Bug
>    Affects Versions: 1.6.0, 1.7.0
>         Environment: Windows 2003
>            Reporter: Thomas S
>            Priority: Major
>             Fix For: 2.0.0
>
>
> Given a service returning the following (taken from SoapUI output).
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>    <soap:Body>
>       <soap:Fault>
>          <faultcode 
> xmlns:q0="http://www.cc.com/SoapExceptionService";>q0:SoapExceptionService</faultcode>
>          <faultstring>System.Web.Services.Protocols.SoapException: This is 
> the FaultString
>    at SoapExceptionService.Service1.HelloWorld(RequestInput ri)</faultstring>
>          <faultactor>http://www.cc.com/SoapExceptionService</faultactor>
>          <detail>
>             <DetailMessage>This is the Detail section</DetailMessage>
>          </detail>
>       </soap:Fault>
>    </soap:Body>
> </soap:Envelope>
> Using Axis2C (both 1.6 and latest 1.7 code from SVN) only returns a subset of 
> these fields.
> Fault Code: (null)
> Exception: (null)
> Reason: (null)
> Role: http://www.cc.com/SoapExceptionService
> Detail xml: <detail><DetailMessage>This is the Detail 
> section</DetailMessage></detail>
> If I retrieve the fault base node and serialize it I see the whole fault 
> message so Axis has all the data available.
> I stepped through function axiom_soap_body_convert_fault_to_soap11() and it 
> appears that the values are found and text elements are created for the 
> missing items but when I try to retrieve them using the axis functions the 
> string values end up being NULL.
> Example:
>                 axis2_char_t *strcodevalue = "";
>                 ::axiom_soap_fault_code *fcode = 
> ::axiom_soap_fault_get_code(fault, env);  // returns ok value
>                 if (fcode) {
>                     ::axiom_soap_fault_value *fcodevalue = 
> ::axiom_soap_fault_code_get_value(fcode, env);  // returns ok value
>                     if (fcodevalue) {
>                         strcodevalue = 
> ::axiom_soap_fault_value_get_text(fcodevalue, env);  // return NULL
>                     }
>                 }



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to