Updated Branches: refs/heads/master b42c91897 -> 1fa63300a
[CB-2666] Added check for null arguments. If null arguments are received, send an error and an explanation. Project: http://git-wip-us.apache.org/repos/asf/cordova-android/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-android/commit/1fa63300 Tree: http://git-wip-us.apache.org/repos/asf/cordova-android/tree/1fa63300 Diff: http://git-wip-us.apache.org/repos/asf/cordova-android/diff/1fa63300 Branch: refs/heads/master Commit: 1fa63300aa9783e4664d43c745df7b9013653602 Parents: b42c918 Author: Max Woghiren <[email protected]> Authored: Wed Mar 27 12:09:17 2013 -0400 Committer: Max Woghiren <[email protected]> Committed: Tue Apr 2 11:51:25 2013 -0400 ---------------------------------------------------------------------- framework/src/org/apache/cordova/ExposedJsApi.java | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-android/blob/1fa63300/framework/src/org/apache/cordova/ExposedJsApi.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/ExposedJsApi.java b/framework/src/org/apache/cordova/ExposedJsApi.java index 48e7102..7702d35 100755 --- a/framework/src/org/apache/cordova/ExposedJsApi.java +++ b/framework/src/org/apache/cordova/ExposedJsApi.java @@ -20,6 +20,7 @@ package org.apache.cordova; import android.webkit.JavascriptInterface; import org.apache.cordova.api.PluginManager; +import org.apache.cordova.api.PluginResult; import org.json.JSONException; /** @@ -39,6 +40,12 @@ import org.json.JSONException; @JavascriptInterface public String exec(String service, String action, String callbackId, String arguments) throws JSONException { + // If the arguments weren't received, send a message back to JS. It will switch bridge modes and try again. See CB-2666. + // We send a message meant specifically for this case. It starts with "@" so no other message can be encoded into the same string. + if (arguments == null) { + return "@Null arguments."; + } + jsMessageQueue.setPaused(true); try { boolean wasSync = pluginManager.exec(service, action, callbackId, arguments);
