cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kayvan Arianpour (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CXF-4507) bug in SchemaJavascriptBuilder while deserializing
Date Tue, 18 Sep 2012 06:55:07 GMT
Kayvan Arianpour created CXF-4507:
-------------------------------------

             Summary: bug in SchemaJavascriptBuilder while deserializing
                 Key: CXF-4507
                 URL: https://issues.apache.org/jira/browse/CXF-4507
             Project: CXF
          Issue Type: Bug
          Components: JavaScript Client
    Affects Versions: 2.6.2
         Environment: FireFox
            Reporter: Kayvan Arianpour
            Priority: Critical


SchemaJavascriptBuilder.java creates a JavaScript for a service, while deserializing an array
it uses a variable named "arrayItem" with no value on definition.

The Problem : if an item in the array is set to null on server, the deserializer on client
side set the item to the value set for the latest value set.

Here you can find the solution :

SchemaJavascriptBuilder.java line 556 :

            if (itemInfo.isArray()) {
                utils.appendLine("item = [];");
                utils.startDo();
                valueTarget = "arrayItem";
                utils.appendLine("var arrayItem;");//****************
            }

should be read as 

            if (itemInfo.isArray()) {
                utils.appendLine("item = [];");
                utils.startDo();
                valueTarget = "arrayItem";
                utils.appendLine("var arrayItem = null;");//****************
            }

sample produced code : 

function services_sal_ngs__rspPayCheque_deserialize (cxfjsutils, element) {
...
     do  {
      var arrayItem;//*******************************
      var value = null;
      if (!cxfjsutils.isElementNil(curElement)) {
       value = cxfjsutils.getNodeText(curElement);
       arrayItem = value;
      }
      item.push(arrayItem);
      curElement = cxfjsutils.getNextElementSibling(curElement);
     }
...
    return newobject;
}


the corrected version should be :

function services_sal_ngs__rspPayCheque_deserialize (cxfjsutils, element) {
...
     do  {
      var arrayItem = null;//*******************************
      var value = null;
      if (!cxfjsutils.isElementNil(curElement)) {
       value = cxfjsutils.getNodeText(curElement);
       arrayItem = value;
      }
      item.push(arrayItem);
      curElement = cxfjsutils.getNextElementSibling(curElement);
     }
...
    return newobject;
}


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message