Uploaded image for project: 'Axis-C++'
  1. Axis-C++
  2. AXISCPP-1039

Code Generation re-initializes array variables with the same name.

    Details

      Description

      When generating (de)serialization code that has multiple arrays the code generator will not uniquely name each array within the same scope.

      RemoteVersion_Array * array0 = new RemoteVersion_Array();
      array0 = (RemoteVersion_Array ) pIWSDZ->getCmplxArray(array0, (void)Axis_DeSerialize_RemoteVersion,
      (void*)Axis_Create_RemoteVersion,
      (void*)Axis_Delete_RemoteVersion,
      (void*)Axis_GetSize_RemoteVersion,
      "affectsVersions", Axis_URI_RemoteVersion);

      param->affectsVersions = array0;

      xsd__string* p_assignee = (pIWSDZ->getElementAsString("assignee",0));
      param->assignee = *p_assignee;
      delete p_assignee;
      Axis_Array * array0 = pIWSDZ->getBasicArray(XSD_STRING, "attachmentNames",0);
      if(param->attachmentNames == NULL)

      { param->attachmentNames = new xsd__string_Array(); }

      param->attachmentNames->clone( *array0);
      Axis::AxisDelete((void*) array0, XSD_ARRAY);

      RemoteComponent_Array * array0 = new RemoteComponent_Array();
      array0 = (RemoteComponent_Array ) pIWSDZ->getCmplxArray(array0, (void)Axis_DeSerialize_RemoteComponent,
      (void*)Axis_Create_RemoteComponent,
      (void*)Axis_Delete_RemoteComponent,
      (void*)Axis_GetSize_RemoteComponent,
      "components", Axis_URI_RemoteComponent);

      param->components = array0;

      xsd__dateTime* p_created = (pIWSDZ->getElementAsDateTime("created",0));
      param->created = *p_created;
      delete p_created;
      RemoteCustomFieldValue_Array * array0 = new RemoteCustomFieldValue_Array();
      array0 = (RemoteCustomFieldValue_Array ) pIWSDZ->getCmplxArray(array0, (void)Axis_DeSerialize_RemoteCustomFieldValue,
      (void*)Axis_Create_RemoteCustomFieldValue,
      (void*)Axis_Delete_RemoteCustomFieldValue,
      (void*)Axis_GetSize_RemoteCustomFieldValue,
      "customFieldValues", Axis_URI_RemoteCustomFieldValue);

      param->customFieldValues = array0;

      A wsdl to demonstrate can be found here:
      https://issues.apache.org/jira/rpc/soap/jirasoapservice-v2?wsdl

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              metke Matthew Metke
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: