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

Arrays returned with 0 size (in axis client)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • current (nightly)
    • current (nightly)
    • Serialization
    • None
    • jdk 1.4.2

    Description

      Arrays returned with 0 size (in axis client)

      ? May be error in class SoapDeSerializer?

      We see two function with equals code but in first we see "!="? in second we see "==" in block
      strcmp(elementName, pName) == 0
      which add array element to array

      We thik that is error, but we can not rebuild project to test .

      void SoapDeSerializer::deserializeEncodedArray (Axis_Array* pArray,
      IAnySimpleType* pSimpleType, const AxisChar* pName, const AxisChar* pNamespace, int size) {
      #ifdef ENABLE_AXISTRACE
      if (axiscpp::AxisTrace::isTraceOn())
      axiscpp::AxisTrace::traceEntry("SoapDeSerializer",
      "deserializeEncodedArray", NULL, 5,
      TRACETYPE_POINTER, sizeof(Axis_Array), ((void*)&pArray),
      TRACETYPE_POINTER, sizeof(IAnySimpleType), ((void*)&pSimpleType),
      TRACETYPE_STRING, 0, ((void*)&pName),
      TRACETYPE_STRING, 0, ((void*)&pNamespace),
      TRACETYPE_INT, 0, ((void*)&size)); /* AUTOINSERTED TRACE */
      #endif

      for (int count = 0 ; count < size; count++)
      {
      const char* elementName = peekNextElementName();
      if(strcmp(elementName, pName) != 0)

      { getElement(pName, pNamespace, pSimpleType, true); void * pValue = pSimpleType->getValue(); pArray->addElement(pValue); Axis::AxisDelete(pValue, pSimpleType->getType()); }

      else
      {

      { #ifdef ENABLE_AXISTRACE if (axiscpp::AxisTrace::isTraceOn()) axiscpp::AxisTrace::traceExit("SoapDeSerializer", "deserializeEncodedArray", NULL, 0); /* AUTOINSERTED TRACE */ #endif return; }

      }
      }
      }

      void SoapDeSerializer::deserializeLiteralArray (Axis_Array* pArray,
      IAnySimpleType* pSimpleType, const AxisChar* pName, const AxisChar*
      pNamespace)
      {
      #ifdef ENABLE_AXISTRACE
      if (axiscpp::AxisTrace::isTraceOn())
      axiscpp::AxisTrace::traceEntry("SoapDeSerializer",
      "deserializeLiteralArray", NULL, 4,
      TRACETYPE_POINTER, sizeof(Axis_Array), ((void*)&pArray),
      TRACETYPE_POINTER, sizeof(IAnySimpleType), ((void*)&pSimpleType),
      TRACETYPE_STRING, 0, ((void*)&pName),
      TRACETYPE_STRING, 0, ((void*)&pNamespace)); /* AUTOINSERTED TRACE */
      #endif

      while(true)
      {
      const char* elementName = peekNextElementName();
      if(strcmp(elementName, pName) == 0)

      { getElement(pName, pNamespace, pSimpleType); void * pValue = pSimpleType->getValue(); pArray->addElement(pValue); Axis::AxisDelete(pValue, pSimpleType->getType()); }

      else
      {

      { #ifdef ENABLE_AXISTRACE if (axiscpp::AxisTrace::isTraceOn()) axiscpp::AxisTrace::traceExit("SoapDeSerializer", "deserializeLiteralArray", NULL, 0); /* AUTOINSERTED TRACE */ #endif return; }

      }
      }
      }

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              lchumanov Leonid Chumanov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: