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