cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jesse <purplecabb...@gmail.com>
Subject Re: wp8 callbackId is broken
Date Mon, 14 Oct 2013 07:13:36 GMT
The callbackid is passed to every native call.  If you have multiple
overlapping native calls you must manage this yourself.
In this case you should always use :
DispatchCommandResult(plugRes, callbackId);

@purplecabbage
risingj.com


On Mon, Oct 14, 2013 at 12:04 AM, Ivan Baktsheev <owner@apla.me> wrote:

> Hi everyone!
>
> I've just found a bug in processing wp callbackId. When I'm trying to
> "cordova.exec" my own http client plugin several times, all requests after
> the first one fail with a message: "Failed to locate callback for id :
> XXXXX"
>
> After some investigation I've came to conclusion that CommandFactory
> returns the same instance for those requests. And this instance of
> BaseCommmand stores callbackId into this.CurrentCommandCallbackId. So, if
> we have 5 simultaneous requests, only the last callbackId is used.
>
> For now, I'm using DispatchCommandResult (result, unmodifiedCallbackId)
> and everything is working fine. DispatchCommandResult (result) is broken
> for simultaneous async plugin calls for the same plugin/method.
>
> I cannot share code this time, but you can see the log below.
>
> [107648>599025] HTTPClient.run (1) started
> cordova.js exec    >>> callbackId is: HTTPClient217411808
> CordovaCommandCall >>> CommandString :
> HTTPClient/request/HTTPClient217411808/["
> http://192.168.0.1/api/monitoring/status"]
> NativeExecution    >>> HTTPClient217411808
> [107648>816581] HTTPClient.run (1) started
> cordova.js exec    >>> callbackId is: HTTPClient217411809
> CordovaCommandCall >>> CommandString :
> HTTPClient/request/HTTPClient217411809/["
> http://192.168.0.1/api/monitoring/traffic-statistics"]
> NativeExecution    >>> HTTPClient217411809
> [107648>519782] HTTPClient.run (1) started
> cordova.js exec    >>> callbackId is: HTTPClient217411810
> CordovaCommandCall >>> CommandString :
> HTTPClient/request/HTTPClient217411810/["
> http://192.168.0.1/api/device/information"]
> NativeExecution    >>> HTTPClient217411810
> [107648>994073] HTTPClient.run (1) started
> cordova.js exec    >>> callbackId is: HTTPClient217411811
> CordovaCommandCall >>> CommandString :
> HTTPClient/request/HTTPClient217411811/["
> http://192.168.0.1/api/sms/sms-count"]
> NativeExecution    >>> HTTPClient217411811
> [107648>516070] HTTPClient.run (1) started
> cordova.js exec    >>> callbackId is: HTTPClient217411812
> CordovaCommandCall >>> CommandString :
> HTTPClient/request/HTTPClient217411812/["
> http://192.168.0.1/api/net/current-plmn"]
> NativeExecution    >>> HTTPClient217411812
> [019830] workflow complete in 930ms
> The thread 0xc94 has exited with code 259 (0x103).
> The thread 0xbc8 has exited with code 259 (0x103).
> The thread 0xd6c has exited with code 259 (0x103).
> The thread 0xa84 has exited with code 259 (0x103).
> The thread 0xbb4 has exited with code 259 (0x103).
> HTTPClientPlugin >>> stored callbackId: HTTPClient217411808
> HTTPClientPlugin >>> stored callbackId: HTTPClient217411809
> BaseCommand      >>> Failed to locate callback for id : HTTPClient217411812
> [107648>516070] HTTPClient.run (4) task completed
> [107648>516070] parsePage (1) started
> [107648>516070] parsePage (4) task completed
> have completed tasks
> [107648>516070] workflow complete in 501ms
> HTTPClientPlugin >>> stored callbackId: HTTPClient217411811
> BaseCommand      >>> Failed to locate callback for id : HTTPClient217411812
> HTTPClientPlugin >>> stored callbackId: HTTPClient217411810
> BaseCommand      >>> Failed to locate callback for id : HTTPClient217411812
> HTTPClientPlugin >>> stored callbackId: HTTPClient217411812
> BaseCommand      >>> Failed to locate callback for id : HTTPClient217411812

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message