Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.2
Description
I don't know for whom to blame with this bug, but since it can be easilly fixed on ODE side, I report it here. In some cases, when internal error occur within ODE, it returns incorrect SOAP fault as following:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault xmlns:soapenv="http://incubator.apache.org/ode">
<faultcode>soapenv:Fault</faultcode>
<faultstring>Timeout or execution error when waiting for response to MEX {MyRoleMex#4611686018427387903 [Client hqejbhcnphr3tgmhuqms9i] calling
STD_QDS_RSR68.STD_QDS_RSR68(...)} java.util.concurrent.TimeoutException: Message exchange org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@71edc0 timed out when waiting for a response!</faultstring>
<detail/>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
You can notice, that this element <soapenv:Fault xmlns:soapenv="http://incubator.apache.org/ode"> and all its children have incorrect namespace, so automatic processing routines don't recognise fault here. This happens due to some code deeply in Axis2. This can be fixed with following patch, so fault envelope will look like this:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault xmlns:ode="http://incubator.apache.org/ode">
<faultcode>ode:Fault</faultcode>
<faultstring>Timeout or execution error when waiting for response to MEX {MyRoleMex#4611686018427387903 [Client hqejbhcnphr3tl71dm4x8g] calling
STD_QDS_RSR.STD_QDS_RSR(...)} java.util.concurrent.TimeoutException: Message exchange org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl$ResponseFuture@1a63a1c timed out when waiting for a response!</faultstring>
<detail/>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>