Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
current (nightly)
-
None
-
WIN2KSP4 VC6SP6 JDK1.5.0_07
Description
In handling SoapFaults, faultactor is retrieved unconditionally (next()) where it should (being facultative) be checked for presence first (peek()).
$ pwd
/cd/d/Quellen/SVN/axis/c/src/soap
Index: SoapDeSerializer.cpp
===================================================================
— SoapDeSerializer.cpp (Revision 480584)
+++ SoapDeSerializer.cpp (Arbeitskopie)
@@ -401,7 +401,8 @@
char *pcDetail;
char *pcFaultCode;
char *pcFaultstring;
- char *pcFaultactor;
+ char *pcFaultactor = "";
+ char* pcName;
if (0 == strcmp ("Fault", pName))
{
if (0 != strcmp (m_pNode->m_pchNameOrValue, pName))
@@ -431,10 +432,14 @@
if ( pcFaultstring )
delete [] pcFaultstring;
- pcFaultactor = getElementAsString ("faultactor", 0);
- pFault->setFaultactor (pcFaultactor == NULL ? "" : pcFaultactor);
- if ( pcFaultactor )
- delete [] pcFaultactor;
+ pName = peekNextElementName();
+ if (strcmp(pName, "faultactor") == 0)
+ { + pcFaultactor = getElementAsString ("faultactor", 0); + pFault->setFaultactor (pcFaultactor == NULL ? "" : pcFaultactor); + if ( pcFaultactor ) + delete [] pcFaultactor; + }
// FJP Changed the namespace from null to a single space (an impossible
// value) to help method know