You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Ju...@fr.thalesgroup.com on 2004/11/15 15:01:26 UTC

RE: [AXIS C++ 1.3] Bug in SoapDeSerializer::getBasicArray when th ere is more than one array

The previous patch was not working when there is other type than array
in the message. This one is better :

diff -bBdNrw -U5 axis-c-src-1-3-linux/src/soap/SoapDeSerializer.cpp
axis-c-src-1-3-linux.modif/src/soap/SoapDeSerializer.cpp
--- axis-c-src-1-3-linux/src/soap/SoapDeSerializer.cpp	2004-10-22
14:50:49.000000000 +0200
+++ axis-c-src-1-3-linux.modif/src/soap/SoapDeSerializer.cpp	2004-11-15
13:59:12.000000000 +0100
@@ -726,10 +726,11 @@
     free(Array.m_Array);\
     Array.m_Array = 0;\
     Array.m_Size = 0;\
     return Array;\
 }\
+m_pNode = m_pParser->next(); /* skip end element node too */\
 return Array;
 
 #define DESERIALIZE_LITERAL_ARRAY_BLOCK(cpp_type, conv_func) \
             Array.m_Array = malloc(sizeof(cpp_type)*INITIAL_ARRAY_SIZE);\
             if (!Array.m_Array) return Array;\
@@ -848,10 +849,11 @@
                     free(Array.m_Array);
                     Array.m_Array = 0;
                     Array.m_Size = 0;
                     return Array;
                 }
+                m_pNode = m_pParser->next(); /* skip end element node too
*/
                 return Array;
             case XSD_UNSIGNEDINT:
                 DESERIALIZE_ENCODED_ARRAY_BLOCK(unsigned int, CONV_STRTOUL)
             case XSD_SHORT:
                 DESERIALIZE_ENCODED_ARRAY_BLOCK(short, CONV_STRTOL)

Best Regards.
-- 
Julien Lemoine

Re: [AXIS C++ 1.3] Bug in SoapDeSerializer::getBasicArray when there is more than one array

Posted by Sanjiva Weerawarana <sa...@opensource.lk>.
Wrong list :) .. pls post to axis-c-dev@ws.apache.org.

Sanjiva.

----- Original Message ----- 
From: <Ju...@fr.thalesgroup.com>
To: <ax...@ws.apache.org>
Sent: Monday, November 15, 2004 8:01 PM
Subject: RE: [AXIS C++ 1.3] Bug in SoapDeSerializer::getBasicArray when
there is more than one array


> The previous patch was not working when there is other type than array
> in the message. This one is better :
>
> diff -bBdNrw -U5 axis-c-src-1-3-linux/src/soap/SoapDeSerializer.cpp
> axis-c-src-1-3-linux.modif/src/soap/SoapDeSerializer.cpp
> --- axis-c-src-1-3-linux/src/soap/SoapDeSerializer.cpp 2004-10-22
> 14:50:49.000000000 +0200
> +++ axis-c-src-1-3-linux.modif/src/soap/SoapDeSerializer.cpp 2004-11-15
> 13:59:12.000000000 +0100
> @@ -726,10 +726,11 @@
>      free(Array.m_Array);\
>      Array.m_Array = 0;\
>      Array.m_Size = 0;\
>      return Array;\
>  }\
> +m_pNode = m_pParser->next(); /* skip end element node too */\
>  return Array;
>
>  #define DESERIALIZE_LITERAL_ARRAY_BLOCK(cpp_type, conv_func) \
>              Array.m_Array = malloc(sizeof(cpp_type)*INITIAL_ARRAY_SIZE);\
>              if (!Array.m_Array) return Array;\
> @@ -848,10 +849,11 @@
>                      free(Array.m_Array);
>                      Array.m_Array = 0;
>                      Array.m_Size = 0;
>                      return Array;
>                  }
> +                m_pNode = m_pParser->next(); /* skip end element node too
> */
>                  return Array;
>              case XSD_UNSIGNEDINT:
>                  DESERIALIZE_ENCODED_ARRAY_BLOCK(unsigned int,
CONV_STRTOUL)
>              case XSD_SHORT:
>                  DESERIALIZE_ENCODED_ARRAY_BLOCK(short, CONV_STRTOL)
>
> Best Regards.
> -- 
> Julien Lemoine
>