{ "id": "76542", "key": "TIMOB-4455", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": { "id": "7", "description": "", "name": "Invalid" }, "resolutiondate": "2017-06-08T19:59:41.000+0000", "created": "2011-06-18T17:09:16.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [ "evaljs" ], "versions": [], "issuelinks": [], "assignee": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-06-08T19:59:41.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "Although the following code works as expected at first, pressing return multiple times in quick succession causes a crash.\r\n\r\n{code:title=app.js}\r\nvar win = Ti.UI.createWindow({\r\n\tfullscreen: false,\r\n\texitOnClose: true\r\n});\r\n\r\nvar view = Ti.UI.createWebView({\r\n\thtml: \"Empty\"\r\n});\r\n\r\nvar text = Ti.UI.createTextArea({\r\n\ttop: 50,\r\n\twidth:'100%',\r\n\theight: 50\r\n});\r\n\r\ntext.addEventListener('return', function() {\r\n\tview.evalJS('document.body.innerHTML = \"' + text.value + '\"');\r\n\ttext.value = \"\";\r\n\r\n\tsetTimeout(function() {\r\n\t\ttext.focus();\r\n\t}, 500);\r\n});\r\n\r\nwin.add(view);\r\nwin.add(text);\r\nwin.open();\r\ntext.focus();\r\n{code}\r\n\r\nCuriously, using an event variable makes it even more unstable, causing it to crash the second time the user enters text:\r\n\r\n{code}\r\ne.addEventListener('return', function(e) {\r\n\tview.evalJS('document.body.innerHTML = \"' + text.value + '\"');\r\n\te.value = \"\";\r\n\r\n\tsetTimeout(function() {\r\n\t\te.focus();\r\n\t}, 500);\r\n});\r\n{code}\r\n\r\nLogcat output for the first example code is as follows:\r\n\r\n{code:title=trace}\r\n2360 TiWebViewBinding D (main) [544,32553] getJSValue:javascript:_TiReturn.setValue((function(){try{return document.body.innerHTML = \"sdlvkns\"+\"\";}catch(ti_eval_err){return '';}})());\r\n 91 dalvikvm D GC freed 226 objects / 13688 bytes in 99ms\r\n 2360 TitaniumModule D (kroll$2: file:///android_asset/Resources/app.js) [521,33074] calling timeout timer 12 @1308440929855\r\n 2360 TiWebViewBinding D (main) [577,33651] getJSValue:javascript:_TiReturn.setValue((function(){try{return document.body.innerHTML = \"sldvknsd\"+\"\";}catch(ti_eval_err){return '';}})());\r\n 2360 TiWebViewBinding D (main) [209,33860] getJSValue:javascript:_TiReturn.setValue((function(){try{return document.body.innerHTML = \" \"+\"\";}catch(ti_eval_err){return '';}})());\r\n 91 dalvikvm D GC freed 184 objects / 12352 bytes in 61ms\r\n 2360 TiWebViewBinding D (main) [264,34124] getJSValue:javascript:_TiReturn.setValue((function(){try{return document.body.innerHTML = \"\r\n 2360 TiWebViewBinding D \"+\"\";}catch(ti_eval_err){return '';}})());\r\n 91 onnectionWrapper.ICC W Timed out waiting on IInputContextCallback\r\n 53 WindowManager W Key dispatching timed out sending to com.testing.testing7/org.appcelerator.titanium.TiActivity\r\n 53 WindowManager W Dispatch state: {{KeyEvent{action=1 code=66 repeat=0 meta=0 scancode=28 mFlags=8} to Window{44d9e8b8 com.testing.testing7/org.appcelerator.titanium.TiActivity paused=false\r\n } @ 1308440930916 lw=Window{44d9e8b8 com.testing.testing7/org.appcelerator.titanium.TiActivity paused=false} lb=android.os.BinderProxy@44d18970 fin=false gfw=true ed=true \r\n tts=0 wf=false fp=false mcf=Window{44d9e8b8 com.testing.testing7/org.appcelerator.titanium.TiActivity paused=false}}}\r\n 53 WindowManager W Current state: {{KeyEvent{action=0 code=66 repeat=0 meta=0 scancode=28 mFlags=8} to Window{44d9e8b8 com.testing.testing7/org.appcelerator.titanium.TiActivity paused=false\r\n } @ 1308440935948 lw=Window{44d9e8b8 com.testing.testing7/org.appcelerator.titanium.TiActivity paused=false} lb=android.os.BinderProxy@44d18970 fin=false gfw=true ed=true \r\n tts=0 wf=false fp=false mcf=Window{44d9e8b8 com.testing.testing7/org.appcelerator.titanium.TiActivity paused=false}}}\r\n 53 ActivityManager I ANR in process: com.testing.testing7 (last in com.testing.testing7)\r\n 53 ActivityManager I Annotation: keyDispatchingTimedOut\r\n 53 ActivityManager I CPU usage:\r\n 53 ActivityManager I Load: 0.25 / 0.3 / 0.22\r\n 53 ActivityManager I CPU usage from 39546ms to 29ms ago:\r\n 53 ActivityManager I esting.testing7: 16% = 14% user + 2% kernel / faults: 8670 minor\r\n 53 ActivityManager I system_server: 8% = 6% user + 2% kernel / faults: 1106 minor\r\n 53 ActivityManager I putmethod.latin: 7% = 5% user + 1% kernel / faults: 3231 minor\r\n 53 ActivityManager I adbd: 0% = 0% user + 0% kernel\r\n 53 ActivityManager I m.android.phone: 0% = 0% user + 0% kernel\r\n 53 ActivityManager I logcat: 0% = 0% user + 0% kernel\r\n 53 ActivityManager I mmcqd: 0% = 0% user + 0% kernel\r\n 53 ActivityManager I qemud: 0% = 0% user + 0% kernel\r\n 53 ActivityManager I logcat: 0% = 0% user + 0% kernel\r\n 53 ActivityManager I TOTAL: 28% = 22% user + 6% kernel + 0% softirq\r\n 53 ActivityManager I Removing old ANR trace file from /data/anr/traces.txt\r\n 53 Process I Sending signal. PID: 2360 SIG: 3\r\n 2360 dalvikvm I threadid=7: reacting to signal 3\r\n 2360 dalvikvm I Wrote stack trace to '/data/anr/traces.txt'\r\n 53 Process I Sending signal. PID: 53 SIG: 3\r\n 53 dalvikvm I threadid=7: reacting to signal 3\r\n 53 dalvikvm I Wrote stack trace to '/data/anr/traces.txt'\r\n 53 Process I Sending signal. PID: 96 SIG: 3\r\n 96 dalvikvm I threadid=7: reacting to signal 3\r\n 96 dalvikvm I Wrote stack trace to '/data/anr/traces.txt'\r\n 53 Process I Sending signal. PID: 229 SIG: 3\r\n 229 dalvikvm I threadid=7: reacting to signal 3\r\n 229 dalvikvm I Wrote stack trace to '/data/anr/traces.txt'\r\n 53 Process I Sending signal. PID: 143 SIG: 3\r\n 143 dalvikvm I threadid=7: reacting to signal 3\r\n 143 dalvikvm I Wrote stack trace to '/data/anr/traces.txt'\r\n 53 Process I Sending signal. PID: 154 SIG: 3\r\n 154 dalvikvm I threadid=7: reacting to signal 3\r\n 154 dalvikvm I Wrote stack trace to '/data/anr/traces.txt'\r\n 53 Process I Sending signal. PID: 191 SIG: 3\r\n 191 dalvikvm I threadid=7: reacting to signal 3\r\n 191 dalvikvm I Wrote stack trace to '/data/anr/traces.txt'\r\n 53 Process I Sending signal. PID: 182 SIG: 3\r\n 182 dalvikvm I threadid=7: reacting to signal 3\r\n 182 dalvikvm I Wrote stack trace to '/data/anr/traces.txt'\r\n 53 Process I Sending signal. PID: 173 SIG: 3\r\n 173 dalvikvm I threadid=7: reacting to signal 3\r\n 173 dalvikvm I Wrote stack trace to '/data/anr/traces.txt'\r\n 53 Process I Sending signal. PID: 92 SIG: 3\r\n 92 dalvikvm I threadid=7: reacting to signal 3\r\n 92 dalvikvm I Wrote stack trace to '/data/anr/traces.txt'\r\n 53 Process I Sending signal. PID: 132 SIG: 3\r\n 132 dalvikvm I threadid=7: reacting to signal 3\r\n 132 dalvikvm I Wrote stack trace to '/data/anr/traces.txt'\r\n 53 Process I Sending signal. PID: 91 SIG: 3\r\n 91 dalvikvm I threadid=7: reacting to signal 3\r\n 91 dalvikvm I Wrote stack trace to '/data/anr/traces.txt'\r\n{code}\r\n", "attachment": [], "flagged": false, "summary": "Updating elements of a webview using evalJS() causes crash", "creator": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "subtasks": [], "reporter": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "environment": "* Titanium 1.7.1 (2011/06/17 00:13 293a6d...)\r\n* Android 2.1 emulator\r\n", "comment": { "comments": [ { "id": "421559", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket due to time passed and lack of input or progress in the past few years.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-06-08T19:59:41.000+0000", "updated": "2017-06-08T19:59:41.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }