[TIMOB-28148] iOS: app crashes when updating tableview
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | Critical |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2020-10-07T17:41:23.000+0000 |
Affected Version/s | n/a |
Fix Version/s | Release 9.3.0, Release 9.2.1 |
Components | iOS |
Labels | n/a |
Reporter | Josh Longton |
Assignee | Vijay Singh |
Created | 2020-09-22T12:23:11.000+0000 |
Updated | 2020-11-03T14:38:43.000+0000 |
Description
The customer is experiencing a crash when updating tableview on 9.1.0.GA, the crash does not happen on 9.0.3.GA
*Testcase*;
{noformat}
var tableData = [];
var win = Ti.UI.createWindow({ backgroundColor: 'white' });
var table = Ti.UI.createTableView({ objName: 'table' });
for (var i = 0; i <= 20; i++) {
var row = Ti.UI.createTableViewRow({ title: 'click me' });
var view = Ti.UI.createView({
layout: 'vertical',
height: Ti.UI.SIZE,
touchEnabled: false,
width: "50%",
left: 0
});
row.add(view)
tableData.push(row);
}
table.setData(tableData);
table.addEventListener('click', function (e) {
if (e.source && e.source.objName !== 'table') {
e.source.add(Ti.UI.createLabel({
text: 'REQUIRED',
left: '60%',
color: 'blue',
horizontalWrap: true,
width: "40%",
height: Ti.UI.SIZE
}));
}
});
win.add(table);
win.open();
{noformat}
*Actual*;
{noformat}
[ERROR] Script Error {
[ERROR] column = 17;
[ERROR] line = 25;
[ERROR] message = "-[TiUITableViewCell updateClipping]: unrecognized selector sent to instance 0x7ffd41312850";
[ERROR] nativeStack = "3 UIKitCore 0x00007fff493a1aec -[UIResponder doesNotRecognizeSelector:] + 302\n4 CoreFoundation 0x00007fff23e4286c ___forwarding___ + 1436\n5 CoreFoundation 0x00007fff23e44b58 _CF_forwarding_prep_0 + 120\n6 TitaniumKit0x0000000109c95f4e -[TiViewProxy add:] + 1507\n7 TitaniumKit0x0000000109c95b08 -[TiViewProxy add:] + 413\n8 CoreFoundation 0x00007fff23e44dec __invoking___ + 140\n9 CoreFoundation 0x00007fff23e41fd1 -[NSInvocation invoke] + 321\n10 TitaniumKit0x0000000109cb8c9b -[KrollMethod call:] + 1385\n11 TitaniumKit0x0000000109cb7e87 __KrollCallAsFunction_block_invoke + 30\n12 TitaniumKit0x0000000109cb7ca1 KrollCallAsFunction + 425\n13 JavaScriptCore 0x00007fff26cc0073 _ZN3JSC16JSCallbackObjectINS_16JSNonFinalObjectEE4callEPNS_14JSGlobalObjectEPNS_9CallFrameE + 627\n14 JavaScriptCore 0x00007fff2719380f _ZN3JSC5LLInt9setUpCallEPNS_9CallFrameENS_22CodeSpecializationKindENS_7JSValueEPNS_17LLIntCallLinkInfoE + 959\n15 JavaScriptCore 0x00007fff26c7d58f llint_entry + 93330\n16 JavaScriptCore 0x00007fff26c6674f vmEntryToJavaScript + 200\n17 JavaScriptCore 0x00007fff2709d525 _ZN3JSC11Interpreter11executeCallEPNS_14JSGlobalObjectEPNS_8JSObjectENS_8CallTypeERKNS_8CallDataENS_7JSValueERKNS_7ArgListE + 549\n18 JavaScriptCore 0x00007fff272d77ea _ZN3JSC12profiledCallEPNS_14JSGlobalObjectENS_15ProfilingReasonENS_7JSValueENS_8CallTypeERKNS_8CallDataES3_RKNS_7ArgListE + 170\n19 JavaScriptCore 0x00007fff26cce5ac JSObjectCallAsFunction + 620\n20 TitaniumKit0x0000000109c94b95 TiBindingEventProcess + 686\n21 TitaniumKit0x0000000109cb6062 -[KrollContext invoke:] + 109\n22 TitaniumKit0x0000000109cb60d5 -[KrollContext enqueue:] + 93";
[ERROR] sourceURL = "file:///Users/axwaysu/Library/Developer/CoreSimulator/Devices/29BC7A6C-446A-4784-9B9A-27C6FC7310E3/data/Containers/Bundle/Application/F441AA81-63F8-4114-8DBE-24A7D927BE8B/support.app/app.js";
[ERROR] stack = "[native code]\nfile:///Users/axwaysu/Library/Developer/CoreSimulator/Devices/29BC7A6C-446A-4784-9B9A-27C6FC7310E3/data/Containers/Bundle/Application/F441AA81-63F8-4114-8DBE-24A7D927BE8B/support.app/app.js:25:17";
[ERROR] type = Error;
[ERROR] }
{noformat}
*Expected*;
No crash and
REQUIRED
is displayed.
[~amukherjee]/[~spulipakkam] can this be scheduled for the customer?
Maybe it helps: Instead of setting the value on "e.source", set it to the actual row (which can be received by using e.row or the indices provided by the event).
PR - https://github.com/appcelerator/titanium_mobile/pull/12128
Looking at diffs between 9.0.3 and 9.1.0, this change related to TIMOB-27935 looks suspicious: https://github.com/appcelerator/titanium_mobile/commit/b15d1840c9be3cbf7cc74b10381e3656846f87b8
Reopened TIMOB-27935 which is causing this regression.
FR Passed, waiting on Jenkins build.
This bug is no longer present if TIMOB-27935 is reverted (which I believe it is now). Ticket closed.
Reopening to change the resolution to "Fixed"