Nicholas,
Please try the latest code in SVN and let me know how it goes.
Nadir K. Amra
Nicholas Hart <[EMAIL PROTECTED]> wrote on 01/24/2007 05:24:52 PM:
>
> I found a problem with how the deserializer deals with arrays and nil
> complex objects. in the case of a non-zero array it was failing to skip
> the closing tag for the array, so I added a call to skipEndNode() in
> that case. Without that, the next element attempted to be parsed was
> the close tag from the array.
>
> For parsing complex objects, if it is marked as nil then it shouldn't
> attempt to deserialize the object and just return NULL. I found it was
> necessary to add the skipEndNode() in that case as well, so that the
> next element can be parsed.
>
> I know there's some work going on in the parsing engine--should I file a
> bug and attach this patch or wait until the new code is ready for
testing?
>
>
> Index: src/soap/SoapDeSerializer.cpp
> ===================================================================
> --- src/soap/SoapDeSerializer.cpp (revision 498771)
> +++ src/soap/SoapDeSerializer.cpp (working copy)
> @@ -706,7 +706,10 @@
> delete pSimpleType;
>
> if ( m_nStatus != AXIS_FAIL)
> - return Array;
> + {
> + skipEndNode();
> + return Array;
> + }
> }
> }
> else
> @@ -755,6 +758,12 @@
> m_pNode = m_pParser->next ();
> if (!m_pNode)
> return NULL;
> +
> + if (isNillValue())
> + {
> + skipEndNode();
> + return NULL;
> + }
>
> TRACE_OBJECT_CREATE_FUNCT_ENTRY(pCreFunct, 0);
> void *pObject = ((AXIS_OBJECT_CREATE_FUNCT) pCreFunct) (0);
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]