axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dushshantha Chandradasa" <>
Subject RE: Dushshantha: FaultMappingDoc broken
Date Thu, 18 Aug 2005 03:51:58 GMT
Hi Mark,
I think I got your problem. I made these changes on deserializer to
correctly deserialize both complex and simple faults. For me, the detail
tag of the server response message is somewhat deferent. It looks like

<faultcode>AxisC++ Faultcode</faultcode> 
<faultstring>Custom Out of bound exception</faultstring> 
<faultactor>server name:listen port</faultactor> 
<detail><appSpecific><DivByZeroStruct><ns1:varString>Division by zero

It includes an additional <appSpecific> tag in the message. This was
introduced as a fix to the issue AXISCPP-706. 

I think you are using MockServer and your server response file does not
contain this <appSpecific> tag.

Please refer to to
understand my changes. Sorry for the inconvenience.


-----Original Message-----
From: Mark Whitlock [] 
Sent: Wednesday, August 17, 2005 9:43 PM
Subject: Dushshantha: FaultMappingDoc broken

Hi Dushshantha,
I am investigating the FaultMappingDoc test which is currently failing
us. It started failing on 26/07/05 (apologies that it has taken me so
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
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
by calling SoapFault::getCmplxFaultObjectName which (from the trace)
return "DivByZeroStruct" but instead returns "varString". The relevant
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
FaultMappingRepeatedDoc and OtherFaultException also fail in the same
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