cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ivan Baktsheev <ow...@apla.me>
Subject wp8 callbackId is broken
Date Mon, 14 Oct 2013 07:04:50 GMT
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
View raw message