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