axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Whitlock <mark_whitl...@uk.ibm.com>
Subject Dushshantha: FaultMappingDoc broken
Date Wed, 17 Aug 2005 15:43:25 GMT




Hi Dushshantha,
I am investigating the FaultMappingDoc test which is currently failing for
us. It started failing on 26/07/05 (apologies that it has taken me so long
to catch up with this problem). I believe the change that broke it was
1.172 of SoapDeSerializer.cpp. Revision 1.174 of SoapDeSerializer.cpp
altered that fix to add in these lines into SoapDeSerializer::getElement in
the doc-literal clause...

if (0 == strcmp(pName,"detail") )
{
  m_pNode = m_pParser->next ();
}

When I comment out these lines FaultMappingDoc passes. When the service
returns a DivByZeroStruct soap fault, the FaultMappingDocClient is
expecting to catch a DivByZeroStruct, but instead it catches a
SoapFaultException. The generated MathOps stub decides which fault to throw
by calling SoapFault::getCmplxFaultObjectName which (from the trace) should
return "DivByZeroStruct" but instead returns "varString". The relevant part
of the response message is...

<soapenv:Fault>
<faultcode xmlns:ns2008922717="http://soapinterop.org/wsdl"
xmlns="">ns2008922717:DivByZeroStruct</faultcode>
<faultstring xmlns="">org.soapinterop.DivByZeroStruct</faultstring>
<detail xmlns="">
<DivByZeroStruct xmlns="http://soapinterop.org/wsdl">
<varString>Division by zero exception</varString>
<varInt>1</varInt>
<varFloat>10.52</varFloat>
</DivByZeroStruct>
</detail>
</soapenv:Fault>

So it looks like the SoapDeSerializer is stepping over one too many tags.
FaultMappingRepeatedDoc and OtherFaultException also fail in the same way.
I guess the same problem may happen for rpc-encoded.

I don't understand what you were fixing so I don't like to back out your
change. Please could you help me to fix this?
Thanks,
Mark
Mark Whitlock



Mime
View raw message