[
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