cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Grieve (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CB-2666) Android bridge chokes on UTF characters only on Galaxy S2 JellyBean
Date Wed, 13 Mar 2013 15:10:13 GMT
Andrew Grieve created CB-2666:
---------------------------------

             Summary: Android bridge chokes on UTF characters only on Galaxy S2 JellyBean
                 Key: CB-2666
                 URL: https://issues.apache.org/jira/browse/CB-2666
             Project: Apache Cordova
          Issue Type: Bug
          Components: Android
            Reporter: Andrew Grieve
            Assignee: Andrew Grieve
            Priority: Minor
         Attachments: LoggerTest.zip

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

Mime
View raw message