{ "id": "175616", "key": "TIMOB-28178", "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": "21052", "description": "", "name": "Release 9.3.0", "archived": false, "released": true, "releaseDate": "2020-12-14" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2020-11-23T23:28:22.000+0000", "created": "2020-10-07T16:01:58.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "android", "camera", "crash", "media", "photogallery", "regression" ], "versions": [ { "id": "20950", "name": "Release 9.1.0", "archived": false, "released": true, "releaseDate": "2020-08-25" } ], "issuelinks": [ { "id": "58828", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "175652", "key": "AC-6616", "fields": { "summary": "Android: Ti.Media.openPhotoGallery Crash while using allowMultiple option", "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" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "58825", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "175642", "key": "TIMOB-28193", "fields": { "summary": "Android: Selecting multiple photos/videos via openPhotoGallery() can cause a crash as of 9.1.0", "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" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2020-11-23T23:28:22.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": "*Summary:*\r\nAs of Titanium 9.1.0, calling {{Ti.Media.openPhotoGallery()}} and then backing-out of the gallery apps without making a selection will cause a crash on Android. This issue does not happen if you select a photo. It only happens when you cancel out.\r\n\r\n*Steps to reproduce:*\r\n# Build and run [^PhotoVideoSelectTest.js] on Android with Titanium 9.1.0 or higher.\r\n# When the alert dialog appears, select \"Photo\".\r\n# Back out of the photo gallery app. _(Do NOT select a photo.)_\r\n# Notice the app crashes.\r\n\r\n{code}\r\njava.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=0, data=null} to activity {com.comehome/org.appcelerator.titanium.TiActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.net.Uri android.content.Intent.getData()' on a null object reference\r\n at android.app.ActivityThread.deliverResults(ActivityThread.java:4496)\r\n at android.app.ActivityThread.handleSendResult(ActivityThread.java:4538)\r\n at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)\r\n at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)\r\n at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)\r\n at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1906)\r\n at android.os.Handler.dispatchMessage(Handler.java:106)\r\n at android.os.Looper.loop(Looper.java:193)\r\n at android.app.ActivityThread.main(ActivityThread.java:6863)\r\n at java.lang.reflect.Method.invoke(Method.java:-2)\r\n at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)\r\n at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)\r\n\r\nCaused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.net.Uri android.content.Intent.getData()' on a null object reference\r\n at ti.modules.titanium.media.MediaModule$1.onResult(MediaModule.java:970)\r\n at org.appcelerator.titanium.util.TiActivitySupportHelper$1.onResult(TiActivitySupportHelper.java:60)\r\n at org.appcelerator.titanium.util.TiActivitySupportHelper.onActivityResult(TiActivitySupportHelper.java:117)\r\n at org.appcelerator.titanium.TiBaseActivity.onActivityResult(TiBaseActivity.java:900)\r\n at android.app.Activity.dispatchActivityResult(Activity.java:7476)\r\n at android.app.ActivityThread.deliverResults(ActivityThread.java:4489)\r\n at android.app.ActivityThread.handleSendResult(ActivityThread.java:4538)\r\n at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)\r\n at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)\r\n at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)\r\n at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1906)\r\n at android.os.Handler.dispatchMessage(Handler.java:106)\r\n at android.os.Looper.loop(Looper.java:193)\r\n at android.app.ActivityThread.main(ActivityThread.java:6863)\r\n at java.lang.reflect.Method.invoke(Method.java:-2)\r\n at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)\r\n at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)\r\n{code}\r\n\r\n*Note:*\r\n[~Andrea.Vitale] has an end-user that has this issue on a OnePlus A3003. The end-user claims that an image is being selected, although this crash should only happen if you cancel out of the gallery. Either way, the line of code that it's crashing on indicates no selection was made.", "attachment": [ { "id": "67586", "filename": "PhotoVideoSelectTest.js", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-10-08T00:20:09.000+0000", "size": 1707, "mimeType": "application/x-javascript" }, { "id": "67585", "filename": "Ti Error.mov", "author": { "name": "Andrea.Vitale", "key": "andrea.vitale", "displayName": "Andrea Vitale", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-10-07T16:00:55.000+0000", "size": 1107025, "mimeType": "video/quicktime" } ], "flagged": false, "summary": "Android: Canceling out of Ti.Media.openPhotoGallery() causes a crash as of 9.1.0", "creator": { "name": "Andrea.Vitale", "key": "andrea.vitale", "displayName": "Andrea Vitale", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "Andrea.Vitale", "key": "andrea.vitale", "displayName": "Andrea Vitale", "active": true, "timeZone": "Europe/Berlin" }, "environment": "Phone: ONEPLUS A3003\r\nAndroid Version: 9", "closedSprints": [ { "id": 1207, "state": "closed", "name": "2020 Sprint 20", "startDate": "2020-09-28T15:30:47.481Z", "endDate": "2020-10-09T15:30:00.000Z", "completeDate": "2020-10-09T16:33:43.453Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "457196", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~Andrea.Vitale], you've actually found a regression that was introduced in Titanium 9.1.0. The crash will happen when you cancel/back-out of the photo gallery instead of selecting an image. The device model you use doesn't matter.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-10-08T00:10:56.000+0000", "updated": "2020-10-08T00:10:56.000+0000" }, { "id": "457197", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR (master): https://github.com/appcelerator/titanium_mobile/pull/12165", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-10-08T01:03:46.000+0000", "updated": "2020-10-08T01:03:46.000+0000" }, { "id": "457219", "author": { "name": "ssekhri", "key": "ssekhri", "displayName": "Satyam Sekhri", "active": true, "timeZone": "America/Los_Angeles" }, "body": "FR Passed", "updateAuthor": { "name": "ssekhri", "key": "ssekhri", "displayName": "Satyam Sekhri", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-10-08T21:41:01.000+0000", "updated": "2020-10-08T21:41:01.000+0000" }, { "id": "457300", "author": { "name": "fahad86", "key": "fahad86", "displayName": "Muhammad Ahmed Fahad", "active": true, "timeZone": "Asia/Shanghai" }, "updateAuthor": { "name": "fahad86", "key": "fahad86", "displayName": "Muhammad Ahmed Fahad", "active": true, "timeZone": "Asia/Shanghai" }, "created": "2020-10-22T03:11:29.000+0000", "updated": "2020-10-22T03:24:28.000+0000" }, { "id": "457322", "author": { "name": "fahad86", "key": "fahad86", "displayName": "Muhammad Ahmed Fahad", "active": true, "timeZone": "Asia/Shanghai" }, "body": "please assign a high Priority for this as it has been broken for a while now..", "updateAuthor": { "name": "fahad86", "key": "fahad86", "displayName": "Muhammad Ahmed Fahad", "active": true, "timeZone": "Asia/Shanghai" }, "created": "2020-10-23T03:57:36.000+0000", "updated": "2020-10-23T03:57:36.000+0000" }, { "id": "457331", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~fahad86], we're going to re-open [TIMOB-28193] and resolve the multiselect issue via that ticket. Thanks.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-10-23T21:50:39.000+0000", "updated": "2020-10-23T21:50:39.000+0000" }, { "id": "457401", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "How did this not make it into 9.2.2.GA? :-( So this needs to be cherry picked manually again.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-10-30T07:22:40.000+0000", "updated": "2020-10-30T07:22:40.000+0000" }, { "id": "457698", "author": { "name": "ssekhri", "key": "ssekhri", "displayName": "Satyam Sekhri", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified on:\r\nMac OS: 10.15.4\r\nSDK: 9.3.0.v20201123121926\r\nAppc CLI: 8.1.1\r\nJDK: 11.0.6\r\nNode: 12.16.1\r\nStudio: 6.0.0.202005141803\r\nDevice: Pixel 3 XL(v11.0) emulator", "updateAuthor": { "name": "ssekhri", "key": "ssekhri", "displayName": "Satyam Sekhri", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-11-23T23:28:22.000+0000", "updated": "2020-11-23T23:28:22.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }