Wrong fault type is returned when invoking operation with mutliple fault types 
-------------------------------------------------------------------------------

                 Key: ODE-761
                 URL: https://issues.apache.org/jira/browse/ODE-761
             Project: ODE
          Issue Type: Bug
          Components: JBI Integration
    Affects Versions: 1.3.4
            Reporter: Lee C K
            Priority: Critical


Using ode-jbi.messageMapper=org.apache.ode.jbi.msgmap.JbiWsdl11WrapperMapper, 
if a ws operation defines multiple fault types in the wsdl, when this operation 
is invoked and returns a fault message, the fault message that catch by bpel 
will always be the first fault type (first in alphabetical order). 

There is a mistake with JbiWsdl11WrapperMapper.toFaultType(line 207). if 
(etype.equals(p.getElementName())) will always return the first fault type in 
the fault types list. It should be changed to NOT EQUALS - if 
(!etype.equals(p.getElementName())) 

Example: 
When the search operation is called, the endpoint returns UnexpectedErrorFault 
. But when the fault message reaches bpel script, the fault message has somehow 
converted to InvalidSObjectFault. 
<definitions> 
        <operation name="search"> 
            <soap:operation soapAction=""/> 
            <input> 
                <soap:header use="literal" message="tns:Header" 
part="SessionHeader"/> 
                <soap:header use="literal" message="tns:Header" 
part="CallOptions"/> 
                <soap:header use="literal" message="tns:Header" 
part="PackageVersionHeader"/> 
                <soap:body parts="parameters" use="literal"/> 
            </input> 
            <output> 
                <soap:body use="literal"/> 
            </output> 
            <fault name="InvalidSObjectFault"> 
                <soap:fault name="InvalidSObjectFault" use="literal"/> 
            </fault> 
            <fault name="InvalidFieldFault"> 
                <soap:fault name="InvalidFieldFault" use="literal"/> 
            </fault> 
            <fault name="MalformedSearchFault"> 
                <soap:fault name="MalformedSearchFault" use="literal"/> 
            </fault> 
            <fault name="UnexpectedErrorFault"> 
                <soap:fault name="UnexpectedErrorFault" use="literal"/> 
            </fault> 
        </operation> 
</definitions> 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to