[ 
https://issues.apache.org/jira/browse/CXF-2761?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Kulp reassigned CXF-2761:
--------------------------------

    Assignee: Daniel Kulp

> JavaScript variable "item" wont be reinitialized
> ------------------------------------------------
>
>                 Key: CXF-2761
>                 URL: https://issues.apache.org/jira/browse/CXF-2761
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.2.7
>         Environment: Mac OS X
>            Reporter: Björn Häuser
>            Assignee: Daniel Kulp
>
> Take a look at the generated JS-Code, and especially at the variable item.
> {noformat}
> function ws_ejb_core_lunchroulette_de__userGetMeetingpoints_deserialize 
> (cxfjsutils, element) {
>     var newobject = new ws_ejb_core_lunchroulette_de__userGetMeetingpoints();
>     cxfjsutils.trace('element: ' + cxfjsutils.traceElementName(element));
>     var curElement = cxfjsutils.getFirstElementChild(element);
>     var item;
>     cxfjsutils.trace('curElement: ' + 
> cxfjsutils.traceElementName(curElement));
>     cxfjsutils.trace('processing session');
>     var value = null;
>     if (!cxfjsutils.isElementNil(curElement)) {
>      value = cxfjsutils.getNodeText(curElement);
>      item = value;
>     }
>     newobject.setSession(item);
>     if (curElement != null) {
>      curElement = cxfjsutils.getNextElementSibling(curElement);
>     }
>     cxfjsutils.trace('curElement: ' + 
> cxfjsutils.traceElementName(curElement));
>     cxfjsutils.trace('processing filter');
>     var value = null;
>     if (!cxfjsutils.isElementNil(curElement)) {
>      item = ws_ejb_core_lunchroulette_de__filter_deserialize(cxfjsutils, 
> curElement);
>     }
>     newobject.setFilter(item);
>     if (curElement != null) {
>      curElement = cxfjsutils.getNextElementSibling(curElement);
>     }
>     return newobject;
> }
> {noformat}
> It is possible that item is filled with the value of the first "element" and 
> not changed for the second element, and so the second vlement will get the 
> value for the first element.
> Easy fix (in my opinion):
> {noformat}
>         utils.appendLine("newobject." + accessorName + "(item);");
>         utils.appendLine("var item = null;");
>         if (!itemInfo.isArray()) {
>             utils.startIf("curElement != null");
>             utils.appendLine("curElement = 
> cxfjsutils.getNextElementSibling(curElement);");
>             utils.endBlock();
>         }
> {noformat}
> Line 661 and following in SchemaJavascriptBuilder.java.
> Thanks in advance,
> Björn

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to