You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sa...@apache.org on 2004/08/31 07:44:36 UTC
cvs commit: ws-axis/c/src/soap SoapDeSerializer.cpp
samisa 2004/08/30 22:44:36
Modified: c/src/soap SoapDeSerializer.cpp
Log:
Fixed the array deserialization problem for document style SOAP messages
Jira ID AXISCPP-145
Revision Changes Path
1.82 +8 -3 ws-axis/c/src/soap/SoapDeSerializer.cpp
Index: SoapDeSerializer.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/soap/SoapDeSerializer.cpp,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -r1.81 -r1.82
--- SoapDeSerializer.cpp 20 Aug 2004 13:03:37 -0000 1.81
+++ SoapDeSerializer.cpp 31 Aug 2004 05:44:36 -0000 1.82
@@ -63,6 +63,7 @@
#include <axis/AxisGenException.h>
#include <list>
+#include <iostream>
extern AXIS_CPP_NAMESPACE_PREFIX AxisTrace* g_pAT;
@@ -544,10 +545,11 @@
ptrval = reinterpret_cast<unsigned long>(Array.m_Array);
for (; nIndex < Array.m_Size; nIndex++)
{
- if (!m_pNode) /* if there is an unprocessed node that may be
+ if (!m_pNode) { /* if there is an unprocessed node that may be
* one left from last array deserialization
*/
m_pNode = m_pParser->next();
+ }
/* wrapper node without type info Ex: <phonenumbers> */
if (!m_pNode)
{
@@ -581,8 +583,11 @@
}
if (AXIS_SUCCESS == m_nStatus)
{
- m_pParser->next();
/* skip end element of the array item */
+ m_pParser->next();
+ //Jira AXISCPP-145
+ //point to next element (can be next array elemnt or different object)
+ m_pNode = m_pParser->next();
continue;
}
}
@@ -3432,4 +3437,4 @@
}
}
-AXIS_CPP_NAMESPACE_END
\ No newline at end of file
+AXIS_CPP_NAMESPACE_END