axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Whitlock <>
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...

<faultcode xmlns:ns2008922717=""
<faultstring xmlns="">org.soapinterop.DivByZeroStruct</faultstring>
<detail xmlns="">
<DivByZeroStruct xmlns="">
<varString>Division by zero exception</varString>

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?
Mark Whitlock

View raw message