[ 
https://issues.apache.org/jira/browse/AXIS2C-730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12536956
 ] 

Antonio Chiurla commented on AXIS2C-730:
----------------------------------------

Hi,
I encountered the same problem.
To resolve it I have modified the .XSL file to correct the generated source in 
order to
check if current node is the expected node otherwise do not parse as expected 
node
and remember that current node is not consumed in order to not skip to next 
node.
I'll try to attach my proposed patch.
Have I to propose this patch in this project (axis2c) or in project (axis2)?

>  using wsdl2c with -d adb option, and element with minOccurs=0 results in 
> lost nodes in the deserialize method
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2C-730
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-730
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: code generation
>    Affects Versions: 1.1.0
>         Environment: Windows
>            Reporter: José Manuel Rubio
>
> I created stub using wsdl2c with -d adb option. 
> Generated code does not take into account the fact that a node could be 
> missing from the input. For example the following code is being generated:
> axis2_status_t AXIS2_CALL
> adb_ship_deserialize(
>        adb_ship_t* _ship,
>        const axutil_env_t *env,
>        axiom_node_t* parent)
> {
>    .
>    .
>    .
> if (current_node  && axiom_node_get_data_element( current_node, env) && 
> !axutil_strcmp("actualDraught", 
> axiom_element_get_localname((axiom_element_t *)axiom_node_get_data_element( 
> current_node, env), env))
> )
> {
>       current_element = (axiom_element_t *)axiom_node_get_data_element( 
> current_node, env);
>                 text_value = axiom_element_get_text(current_element, env, 
> current_node );
>                 
>       status = adb_ship_set_actualDraught( _ship, env,
>                                                                               
>  atof( text_value));
>                       
>       if( AXIS2_FAILURE ==  status)
>       {
>               AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "failed in setting the 
> value for actualDraught "
>                                                        " %d :: %s", 
> env->error->error_number,
>                                                        
> AXIS2_ERROR_GET_MESSAGE(env->error));
>               return AXIS2_FAILURE;
>       }
> }
> if(current_node != NULL)
> {
>         //Here it is asking for the next node even when the code above has 
> not processed the current_node
>       current_node = axiom_node_get_next_sibling( current_node, env);
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to