You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Max Woghiren (JIRA)" <ji...@apache.org> on 2013/04/24 17:49:15 UTC
[jira] [Resolved] (CB-2665) Android bridge chokes on UTF characters
only on Galaxy S2 JellyBean
[ https://issues.apache.org/jira/browse/CB-2665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Max Woghiren resolved CB-2665.
------------------------------
Resolution: Fixed
Assignee: Max Woghiren (was: Andrew Grieve)
Resolved in CB-2666.
> Android bridge chokes on UTF characters only on Galaxy S2 JellyBean
> -------------------------------------------------------------------
>
> Key: CB-2665
> URL: https://issues.apache.org/jira/browse/CB-2665
> Project: Apache Cordova
> Issue Type: Bug
> Components: Android
> Reporter: Andrew Grieve
> Assignee: Max Woghiren
> Priority: Minor
>
> Reported via email from Lindsey Simon.
> Test project attached.
> This bug appears to be in a call to the logger plugin. We overload the plugin to point at our own Java Class in config.xml, but call it like cordova.require('cordova/plugin/logger').log('foo).
> Anyhow, this bug is really hard to reproduce - and I'm only getting on a Galaxy S2 with Jelly Bean.
> Maybe this Eclipse dump is useful? I'm having trouble figure I might do to fix it.
> // Compiled from ExposedJsApi.java (version 1.5 : 49.0, super bit)
> class org.apache.cordova.ExposedJsApi {
>
> // Field descriptor #12 Lorg/apache/cordova/api/PluginManager;
> private org.apache.cordova.api.PluginManager pluginManager;
>
> // Field descriptor #14 Lorg/apache/cordova/NativeToJsMessageQueue;
> private org.apache.cordova.NativeToJsMessageQueue jsMessageQueue;
>
> // Method descriptor #16 (Lorg/apache/cordova/api/PluginManager;Lorg/apache/cordova/NativeToJsMessageQueue;)V
> // Stack: 2, Locals: 3
> public ExposedJsApi(org.apache.cordova.api.PluginManager pluginManager, org.apache.cordova.NativeToJsMessageQueue jsMessageQueue);
> 0 aload_0 [this]
> 1 invokespecial java.lang.Object() [1]
> 4 aload_0 [this]
> 5 aload_1 [pluginManager]
> 6 putfield org.apache.cordova.ExposedJsApi.pluginManager : org.apache.cordova.api.PluginManager [2]
> 9 aload_0 [this]
> 10 aload_2 [jsMessageQueue]
> 11 putfield org.apache.cordova.ExposedJsApi.jsMessageQueue : org.apache.cordova.NativeToJsMessageQueue [3]
> 14 return
> Line numbers:
> [pc: 0, line: 36]
> [pc: 4, line: 37]
> [pc: 9, line: 38]
> [pc: 14, line: 39]
> Local variable table:
> [pc: 0, pc: 15] local: this index: 0 type: org.apache.cordova.ExposedJsApi
> [pc: 0, pc: 15] local: pluginManager index: 1 type: org.apache.cordova.api.PluginManager
> [pc: 0, pc: 15] local: jsMessageQueue index: 2 type: org.apache.cordova.NativeToJsMessageQueue
>
> // Method descriptor #23 (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
> // Stack: 5, Locals: 9
> @android.webkit.JavascriptInterface
> public java.lang.String exec(java.lang.String service, java.lang.String action, java.lang.String callbackId, java.lang.String arguments) throws org.json.JSONException;
> 0 aload_0 [this]
> 1 getfield org.apache.cordova.ExposedJsApi.jsMessageQueue : org.apache.cordova.NativeToJsMessageQueue [3]
> 4 iconst_1
> 5 invokevirtual org.apache.cordova.NativeToJsMessageQueue.setPaused(boolean) : void [4]
> 8 aload_0 [this]
> 9 getfield org.apache.cordova.ExposedJsApi.pluginManager : org.apache.cordova.api.PluginManager [2]
> 12 aload_1 [service]
> 13 aload_2 [action]
> 14 aload_3 [callbackId]
> 15 aload 4 [arguments]
> 17 invokevirtual org.apache.cordova.api.PluginManager.exec(java.lang.String, java.lang.String, java.lang.String, java.lang.String) : boolean [5]
> 20 istore 5 [wasSync]
> 22 ldc <String ""> [6]
> 24 astore 6 [ret]
> 26 aload_0 [this]
> 27 getfield org.apache.cordova.ExposedJsApi.jsMessageQueue : org.apache.cordova.NativeToJsMessageQueue [3]
> 30 invokevirtual org.apache.cordova.NativeToJsMessageQueue.popAndEncode() : java.lang.String [7]
> 33 astore 6 [ret]
> 35 aload 6 [ret]
> 37 astore 7
> 39 aload_0 [this]
> 40 getfield org.apache.cordova.ExposedJsApi.jsMessageQueue : org.apache.cordova.NativeToJsMessageQueue [3]
> 43 iconst_0
> 44 invokevirtual org.apache.cordova.NativeToJsMessageQueue.setPaused(boolean) : void [4]
> 47 aload 7
> 49 areturn
> 50 astore 8
> 52 aload_0 [this]
> 53 getfield org.apache.cordova.ExposedJsApi.jsMessageQueue : org.apache.cordova.NativeToJsMessageQueue [3]
> 56 iconst_0
> 57 invokevirtual org.apache.cordova.NativeToJsMessageQueue.setPaused(boolean) : void [4]
> 60 aload 8
> 62 athrow
> Exception Table:
> [pc: 8, pc: 39] -> 50 when : any
> [pc: 50, pc: 52] -> 50 when : any
> Line numbers:
> [pc: 0, line: 43]
> [pc: 8, line: 45]
> [pc: 22, line: 46]
> [pc: 26, line: 48]
> [pc: 35, line: 50]
> [pc: 39, line: 52]
> Local variable table:
> [pc: 22, pc: 50] local: wasSync index: 5 type: boolean
> [pc: 26, pc: 50] local: ret index: 6 type: java.lang.String
> [pc: 0, pc: 63] local: this index: 0 type: org.apache.cordova.ExposedJsApi
> [pc: 0, pc: 63] local: service index: 1 type: java.lang.String
> [pc: 0, pc: 63] local: action index: 2 type: java.lang.String
> [pc: 0, pc: 63] local: callbackId index: 3 type: java.lang.String
> [pc: 0, pc: 63] local: arguments index: 4 type: java.lang.String
>
> // Method descriptor #37 (I)V
> // Stack: 2, Locals: 2
> @android.webkit.JavascriptInterface
> public void setNativeToJsBridgeMode(int value);
> 0 aload_0 [this]
> 1 getfield org.apache.cordova.ExposedJsApi.jsMessageQueue : org.apache.cordova.NativeToJsMessageQueue [3]
> 4 iload_1 [value]
> 5 invokevirtual org.apache.cordova.NativeToJsMessageQueue.setBridgeMode(int) : void [8]
> 8 return
> Line numbers:
> [pc: 0, line: 58]
> [pc: 8, line: 59]
> Local variable table:
> [pc: 0, pc: 9] local: this index: 0 type: org.apache.cordova.ExposedJsApi
> [pc: 0, pc: 9] local: value index: 1 type: int
>
> // Method descriptor #41 ()Ljava/lang/String;
> // Stack: 1, Locals: 1
> @android.webkit.JavascriptInterface
> public java.lang.String retrieveJsMessages();
> 0 aload_0 [this]
> 1 getfield org.apache.cordova.ExposedJsApi.jsMessageQueue : org.apache.cordova.NativeToJsMessageQueue [3]
> 4 invokevirtual org.apache.cordova.NativeToJsMessageQueue.popAndEncode() : java.lang.String [7]
> 7 areturn
> Line numbers:
> [pc: 0, line: 63]
> Local variable table:
> [pc: 0, pc: 8] local: this index: 0 type: org.apache.cordova.ExposedJsApi
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira