{ "id": "176114", "key": "TIMOB-28384", "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": [ { "id": "21050", "name": "Release 10.0.0", "archived": false, "released": true, "releaseDate": "2021-05-17" }, { "id": "21212", "description": "", "name": "Release 9.3.3", "archived": false, "released": false } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2021-05-18T18:06:05.000+0000", "created": "2021-03-11T20:43:38.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "regression" ], "versions": [ { "id": "21052", "description": "", "name": "Release 9.3.0", "archived": false, "released": true, "releaseDate": "2020-12-14" }, { "id": "21177", "name": "Release 9.3.1", "archived": false, "released": true, "releaseDate": "2021-01-26" }, { "id": "21191", "name": "Release 9.3.2", "archived": false, "released": true, "releaseDate": "2021-02-11" } ], "issuelinks": [], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2021-05-18T18:06:09.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": "h5.Steps to reproduce:\r\n1. Use the code below in your app.js:\r\n{code:js}\r\nconst win = Ti.UI.createWindow({\r\n\tbackgroundColor : 'white'\r\n});\r\nvar rowItems = [];\r\nfor (var i = 0; i < 10; i++) {\r\n\tvar row = Ti.UI.createTableViewRow({\r\n\t\ttitle : 'Apples',\r\n\t\tborderColor : 'red',\r\n\t\tborderWidth : 2,\r\n rightImage : '/images/icon_s_arrow_right.png'\r\n\t});\r\n\trow.add(Ti.UI.createLabel({\r\n\t\tcolor : 'black',\r\n\t\ttext : i,\r\n\t\ttouchEnabled : false,\r\n\t\tleft : 0,\r\n\t\twidth : Ti.UI.FILL\r\n\t}));\r\n\trowItems.push(row);\r\n}\r\n\r\nvar table = Ti.UI.createTableView({\r\n\tdata : rowItems,\r\n\tminRowHeight : 100\r\n});\r\n\r\nwin.add(table);\r\nwin.open();\r\n{code}\r\n2. Build for android device.\r\n\r\nh5.Actual result:\r\n1. Exception is thrown:\r\n{code}\r\n[ERROR] : TiFileHelper: (main) [31,1024] /images/icon_s_arrow_right.png not found.\r\n[ERROR] : TiFileHelper: java.io.FileNotFoundException: Resources/images/icon_s_arrow_right.png\r\n[ERROR] : TiFileHelper: \tat android.content.res.AssetManager.nativeOpenAsset(Native Method)\r\n[ERROR] : TiFileHelper: \tat android.content.res.AssetManager.open(AssetManager.java:824)\r\n[ERROR] : TiFileHelper: \tat android.content.res.AssetManager.open(AssetManager.java:801)\r\n[ERROR] : TiFileHelper: \tat org.appcelerator.titanium.util.TiFileHelper.openInputStream(TiFileHelper.java:204)\r\n[ERROR] : TiFileHelper: \tat org.appcelerator.titanium.util.TiFileHelper.loadDrawable(TiFileHelper.java:294)\r\n[ERROR] : TiFileHelper: \tat org.appcelerator.titanium.util.TiFileHelper.loadDrawable(TiFileHelper.java:243)\r\n[ERROR] : TiFileHelper: \tat org.appcelerator.titanium.util.TiFileHelper.loadDrawable(TiFileHelper.java:238)\r\n[ERROR] : TiFileHelper: \tat ti.modules.titanium.ui.widget.tableview.TableViewHolder.bind(TableViewHolder.java:221)\r\n[ERROR] : TiFileHelper: \tat ti.modules.titanium.ui.widget.tableview.TableViewAdapter.onBindViewHolder(TableViewAdapter.java:115)\r\n[ERROR] : TiFileHelper: \tat ti.modules.titanium.ui.widget.tableview.TableViewAdapter.onBindViewHolder(TableViewAdapter.java:26)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)\r\n[ERROR] : TiFileHelper: \tat androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404)\r\n[ERROR] : TiFileHelper: \tat android.view.View.layout(View.java:21927)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewGroup.layout(ViewGroup.java:6260)\r\n[ERROR] : TiFileHelper: \tat androidx.swiperefreshlayout.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:689)\r\n[ERROR] : TiFileHelper: \tat android.view.View.layout(View.java:21927)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewGroup.layout(ViewGroup.java:6260)\r\n[ERROR] : TiFileHelper: \tat org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:955)\r\n[ERROR] : TiFileHelper: \tat android.view.View.layout(View.java:21927)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewGroup.layout(ViewGroup.java:6260)\r\n[ERROR] : TiFileHelper: \tat org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:955)\r\n[ERROR] : TiFileHelper: \tat android.view.View.layout(View.java:21927)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewGroup.layout(ViewGroup.java:6260)\r\n[ERROR] : TiFileHelper: \tat android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)\r\n[ERROR] : TiFileHelper: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:270)\r\n[ERROR] : TiFileHelper: \tat android.view.View.layout(View.java:21927)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewGroup.layout(ViewGroup.java:6260)\r\n[ERROR] : TiFileHelper: \tat androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:530)\r\n[ERROR] : TiFileHelper: \tat android.view.View.layout(View.java:21927)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewGroup.layout(ViewGroup.java:6260)\r\n[ERROR] : TiFileHelper: \tat android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)\r\n[ERROR] : TiFileHelper: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:270)\r\n[ERROR] : TiFileHelper: \tat android.view.View.layout(View.java:21927)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewGroup.layout(ViewGroup.java:6260)\r\n[ERROR] : TiFileHelper: \tat android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)\r\n[ERROR] : TiFileHelper: \tat android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)\r\n[ERROR] : TiFileHelper: \tat android.widget.LinearLayout.onLayout(LinearLayout.java:1582)\r\n[ERROR] : TiFileHelper: \tat android.view.View.layout(View.java:21927)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewGroup.layout(ViewGroup.java:6260)\r\n[ERROR] : TiFileHelper: \tat android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)\r\n[ERROR] : TiFileHelper: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:270)\r\n[ERROR] : TiFileHelper: \tat com.android.internal.policy.DecorView.onLayout(DecorView.java:779)\r\n[ERROR] : TiFileHelper: \tat android.view.View.layout(View.java:21927)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewGroup.layout(ViewGroup.java:6260)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3080)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2590)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1721)\r\n[ERROR] : TiFileHelper: \tat android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7598)\r\n[ERROR] : TiFileHelper: \tat android.view.Choreographer$CallbackRecord.run(Choreographer.java:966)\r\n[ERROR] : TiFileHelper: \tat android.view.Choreographer.doCallbacks(Choreographer.java:790)\r\n[ERROR] : TiFileHelper: \tat android.view.Choreographer.doFrame(Choreographer.java:725)\r\n[ERROR] : TiFileHelper: \tat android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)\r\n[ERROR] : TiFileHelper: \tat android.os.Handler.handleCallback(Handler.java:883)\r\n[ERROR] : TiFileHelper: \tat android.os.Handler.dispatchMessage(Handler.java:100)\r\n[ERROR] : TiFileHelper: \tat android.os.Looper.loop(Looper.java:214)\r\n[ERROR] : TiFileHelper: \tat android.app.ActivityThread.main(ActivityThread.java:7356)\r\n[ERROR] : TiFileHelper: \tat java.lang.reflect.Method.invoke(Native Method)\r\n[ERROR] : TiFileHelper: \tat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)\r\n[ERROR] : TiFileHelper: \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)\r\n{code}\r\n\r\nh5.Expected result:\r\n1. No exception is thrown & images are displayed.", "attachment": [], "flagged": false, "summary": "Android: rightImage property for tableviewrow does not work for res images in \"/images/\" folder", "creator": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "SDK 9.3.0.GA, SDK 9.3.1.GA, SDK 9.3.2.GA", "closedSprints": [ { "id": 1224, "state": "closed", "name": "2021 Sprint 10", "startDate": "2021-05-17T16:31:32.484Z", "endDate": "2021-05-28T16:31:00.000Z", "completeDate": "2021-05-28T22:15:02.543Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "458396", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "master: https://github.com/appcelerator/titanium_mobile/pull/12558", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-03-12T18:10:18.000+0000", "updated": "2021-03-12T18:10:18.000+0000" }, { "id": "458417", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "FR Passed.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-03-15T22:12:03.000+0000", "updated": "2021-03-15T22:12:03.000+0000" }, { "id": "458428", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "merged to master; 10_0_X for 10.0.0 target; and 9_3_X branch.", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2021-03-16T14:05:08.000+0000", "updated": "2021-03-16T14:05:08.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }