Minor update for C-support.
diff --git a/src/cbindings/client/CallC.cpp b/src/cbindings/client/CallC.cpp
index 3a745c9..bc29844 100644
--- a/src/cbindings/client/CallC.cpp
+++ b/src/cbindings/client/CallC.cpp
@@ -46,14 +46,20 @@
StubC *s = (StubC *)c->getCStub();
if (s)
- {
if ((stubExceptionHandler = s->getCExceptionHandler()) != NULL)
exceptionHandler = stubExceptionHandler;
- s->doNotPerformClientRequest = true;
+ try
+ {
+ c->processSoapFault(&e, exceptionHandler);
}
-
- c->processSoapFault(&e, exceptionHandler);
+ catch ( AxisException& e )
+ {
+ // already processing exception...ignore
+ }
+
+ if (s)
+ s->doNotPerformClientRequest = true;
}
diff --git a/src/engine/client/Call.cpp b/src/engine/client/Call.cpp
index 25b6cf8..f1f4339 100644
--- a/src/engine/client/Call.cpp
+++ b/src/engine/client/Call.cpp
@@ -1278,11 +1278,19 @@
if (faultIsDefined)
{
- pFaultDetail = pSoapFault->getCmplxFaultObject(fi->m_deserializerFp,
- fi->m_createFp,
- fi->m_deleteFp,
- fi->m_faultName,
- 0);
+ try
+ {
+ pFaultDetail = pSoapFault->getCmplxFaultObject(fi->m_deserializerFp,
+ fi->m_createFp,
+ fi->m_deleteFp,
+ fi->m_faultName,
+ 0);
+ }
+ catch (AxisException& e1)
+ {
+ // Just fall through since we are already dealing with some exception.
+ pFaultDetail = NULL;
+ }
}
else
{