On Thu, Jan 27, 2011 at 09:18, Cajus Pollmeier <[email protected]> wrote:

> hmm. You mean debugging with IE? Firefox never gets at that place.
>

Yeah, that sucks. Debugging in older versions of IE is pretty awful.

Ah! I think I just found your answer. Look at the comments in the
_oncompleted method of RequestQueue:

    /**
     * Listens for the "completed" event of the transport object and
decreases
     * the counter for active requests.
     *
     * @param e {qx.event.type.Event} event object
     * @return {void}
     */
    _oncompleted : function(e)
    {
      if (qx.core.Variant.isSet("qx.debug", "on"))
      {
        if (qx.core.Setting.get("qx.ioRemoteDebug"))
        {
          if (e.getTarget()._counted)
          {
            this.__activeCount--;
            this.debug("ActiveCount: " + this.__activeCount);
          }
        }
      }

      // delegate the event to the handler method of the request depending
      // on the current type of the event ( completed|aborted|timeout|failed
)
      var request = e.getTarget().getRequest();
      var requestHandler = "_on" + e.getType();

      // It's possible that the request handler can fail, possibly due to
      // being sent garbage data. We want to prevent that from crashing
      // the program, but instead  display an error, and, importantly
      // (regardless of error) remove the request from the queue.
      try
      {
        if (request[requestHandler])
        {
          request[requestHandler](e);
        }
      }
      catch(ex)
      {
        this.error("Request " + request + " handler " + requestHandler +
          " threw an error: ", ex);

        // Issue an "aborted" event so the application gets notified.
        // If that too fails, or if there's no "aborted" handler, ignore it.
        try
        {
          if (request["_onaborted"])
          {
            var event = qx.event.Registration.createEvent("aborted",
                                                      qx.event.type.Event);
            request["_onaborted"](event);
          }
        }
        catch(ex)
        {
        }
      }
      finally
      {
        this._remove(e.getTarget());
      }
    },

Note that it's issuing the "aborted" event when *the request handler* throws
an error. That's almost certainly what's happening. Try adding a try/catch
block inside of your "completed" handler, and you'll likely find the
problem.

Derrell
------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to