Hi.

The patch you've attached seems to solve the problem. 

Unfortunately, it introduces another bug as a side-effect: now, a 'current_node 
= first_node;' assignment also happens in the deserialization of structures 
deduced from the simpleTypes of a wsdl. This leads to compilation errors 
because 'current_node', 'first_node' etc. are not declared in the 
deserialization methods of simple types (as they have no relevance in this 
case).

The workaround I've found was to exclude simple types from the list of nodes 
for which 'current_node' needs to be initialized.

<!-- the position()=1 should be outside the otherwise choose of @attribute -->
+             <xsl:choose>
+               <xsl:when test="not(@isarray)">  <!--not an array so continue 
normal -->
+                     <xsl:if test="$ordered or not($anon or $istype or 
@simple) or $choice"> <!-- since non-anon and choices has just only one sub 
element-->
+                         <xsl:if test="position()=1">
+                           current_node = first_node;
+                           is_early_node_valid = AXIS2_FALSE;

                              .........

+               </xsl:when>
+               <xsl:otherwise>
+                    current_node = first_node;
+                    is_early_node_valid = AXIS2_FALSE;
+               </xsl:otherwise>
+             </xsl:choose>

However, I'm still a long way from fully understanding the logic behind the 
template, so I'm not sure if this workaround is correct.

Thank you for your help.

Catalina-Georgiana Caloian
Software Engineer
 
Quintiq
 
T +31 (0) 73 691 07 39
F +31 (0) 73 691 07 54
M +31 (0) 65 247 63 99
E [EMAIL PROTECTED]
I www.quintiq.com


>>> 
From:   "Dimuthu Gamage" <[EMAIL PROTECTED]>
To:     "Apache AXIS C Developers List" <[email protected]>
Date:   11/13/2008 7:04 PM
Subject:        Re: Incorrect deserialization when the first child is an empty 
element

Hi Catalina,

Looks like there is a bug. It happens that if parent types only contains
attributes, the code that you mentioned is necessary,


  current_node = first_node;
  is_early_node_valid = AXIS2_FALSE;

is never executed.


Please raise a JIRA reporting this issue. I attached a patch (taken from the
latest svn) for give an idea what has gone wrong.


Thanks
Dimuthu


-- 
Thanks,
Dimuthu Gamage

http://www.dimuthu.org 
http://www.wso2.org


This message contains information that may be privileged or confidential and is 
the property of Quintiq. It is only intended for the person to whom it is 
addressed. If you are not the intended recipient, you are not authorized to 
read, print, retain, copy, disseminate, distribute or use this message or any 
part thereof. If you have received this message in error, please notify the 
sender immediately and delete all copies of this message. Please note that 
e-mails are susceptible to change, therefore they are not binding.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to