Uploaded image for project: 'Apache Flex'
  1. Apache Flex
  2. FLEX-24169

Queued Web Service Operations lost

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • Adobe Flex SDK 4.0 (Release)
    • None
    • RPC: WebService
    • None
    • Affected OS(s): All OS Platforms
      Affected OS(s): All OS Platforms
      Language Found: English

    Description

      Steps to reproduce:
      1. Create any scenario that results in webService.ready = false while calls are made to Operation.send( ) method that will result in the call being queued for execution later via the AbstractWebService.unEnqueueCalls( ) method. An easy scenario is to use dynamic WSDL retrieval of a large WSDL over a slower connection (e.g. one restricted using Fiddler or other tools)

      2. Make multiple calls to the same Web Service method with differing arguments.

      3. Observe that only the final call is executed when unEnqueueCalls( ) is run.

      Actual Results:

      Only final Operation executes and the others are lost.

      Expected Results:

      All Operations should be executed.

      Workaround (if any):

      Only workaround is to monkey-patch or to block the usage of any WebService object prior to it entering a ready state. Alternatively the same method name cannot be used ever without first ensuring the previous call has finished executing.

      ----------------------------------------------------------------------------------
      Monkey-patch details:

      Problem is in this function:

      override public function getOperation(name:String):mx.rpc.AbstractOperation
      {
      var op:mx.rpc.AbstractOperation = super.getOperation(name);
      if (op == null)

      { op = new Operation(this, name); _operations[name] = op; op.asyncRequest = asyncRequest; initializeOperation(op as Operation); }

      return op;
      }

      Use of a Hash table to store the operations causes this problem when multiple calls are using the same method name. The Hash-Key should be a unique identifier for each Operation stored in the Operation class because each call to this method is meant to create a distinct Operation in the hash table.

      Please feel free to contact me if I can provide any further assistance in getting this fixed in a timely manner.

      Attachments

        Activity

          People

            Unassigned Unassigned
            adobejira Adobe JIRA
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: