{ "id": "169653", "key": "MOD-2353", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10034", "key": "MOD", "name": "Appcelerator Modules", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": null, "resolutiondate": null, "created": "2017-08-28T22:44:23.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [ { "id": "15080", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-09" }, { "id": "15779", "description": "Release 3.3.0", "name": "Release 3.3.0", "archived": false, "released": true, "releaseDate": "2014-07-16" } ], "issuelinks": [], "assignee": null, "updated": "2018-03-06T18:52:33.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "13700", "name": "Map" } ], "description": "h5.Steps to reproduce:\r\n1. Use the following code in the tiapp.xml.\r\n{code}\r\nvar Map = require('ti.map');\r\n \r\nvar win = Ti.UI.createWindow();\r\nvar mapView = Map.createView({\r\n region: {\r\n latitude: 37.338208,\r\n longitude: -121.886329,\r\n latitudeDelta: 0.1,\r\n longitudeDelta: 0.1\r\n }\r\n});\r\n \r\nmapView.addPolyline(Map.createPolyline({\r\n strokeColor: 'red',\r\n points: [{\r\n latitude: 37.338208,\r\n longitude: -121.886329\r\n }, {\r\n latitude: 37.138208,\r\n longitude: -121.686329\r\n }],\r\n pattern: {\r\n type: Map.POLYLINE_PATTERN_DASHED, // Also try POLYLINE_PATTERN_DASHED\r\n gapLength: 20,\r\n //dashLength: 100\r\n }\r\n}));\r\n \r\nwin.add(mapView);\r\nwin.open();\r\n{code}\r\n2. Run on android device.\r\n\r\nh5.Actual result:\r\n1. The app crashes with error below:\r\n{code}\r\n[ERROR] : [Pixel] TiApplication: (main) [728,728] Sending event: exception on thread: main msg:java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference; Titanium 6.2.0,2017/08/28 14:10,undefined\r\n[ERROR] : [Pixel] TiApplication: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference\r\n[ERROR] : [Pixel] TiApplication: \tat ti.map.PolylineProxy.processPatternDefinition(PolylineProxy.java:284)\r\n[ERROR] : [Pixel] TiApplication: \tat ti.map.PolylineProxy.processOptions(PolylineProxy.java:167)\r\n[ERROR] : [Pixel] TiApplication: \tat ti.map.TiUIMapView.addPolyline(TiUIMapView.java:602)\r\n[ERROR] : [Pixel] TiApplication: \tat ti.map.TiUIMapView.processPreloadPolylines(TiUIMapView.java:149)\r\n[ERROR] : [Pixel] TiApplication: \tat ti.map.TiUIMapView.onMapReady(TiUIMapView.java:168)\r\n[ERROR] : [Pixel] TiApplication: \tat com.google.android.gms.maps.SupportMapFragment$zza$1.zza(Unknown Source)\r\n[ERROR] : [Pixel] TiApplication: \tat com.google.android.gms.maps.internal.zzt$zza.onTransact(Unknown Source)\r\n[ERROR] : [Pixel] TiApplication: \tat android.os.Binder.transact(Binder.java:499)\r\n[ERROR] : [Pixel] TiApplication: \tat gl.b(:com.google.android.gms.DynamiteModulesB:20)\r\n[ERROR] : [Pixel] TiApplication: \tat com.google.android.gms.maps.internal.bf.a(:com.google.android.gms.DynamiteModulesB:5)\r\n[ERROR] : [Pixel] TiApplication: \tat com.google.maps.api.android.lib6.impl.bb.run(:com.google.android.gms.DynamiteModulesB:5)\r\n[ERROR] : [Pixel] TiApplication: \tat android.os.Handler.handleCallback(Handler.java:751)\r\n[ERROR] : [Pixel] TiApplication: \tat android.os.Handler.dispatchMessage(Handler.java:95)\r\n[ERROR] : [Pixel] TiApplication: \tat android.os.Looper.loop(Looper.java:154)\r\n[ERROR] : [Pixel] TiApplication: \tat android.app.ActivityThread.main(ActivityThread.java:6119)\r\n[ERROR] : [Pixel] TiApplication: \tat java.lang.reflect.Method.invoke(Native Method)\r\n[ERROR] : [Pixel] TiApplication: \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)\r\n[ERROR] : [Pixel] TiApplication: \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)\r\n{code}\r\n\r\nh5.Expected result:\r\n1. The app should not crash but should fail gracefully with an error message. ", "attachment": [], "flagged": false, "summary": "Android: Handle missing properties gapLength and/or dashLength for polyline gracefully", "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": "Studio Ver: 4.9.1.201707200100\r\nSDK Ver: 6.2.0.v20170828140722\r\nOS Ver: 10.12.3\r\nXcode Ver: Xcode 8.3.3\r\nAppc NPM: 4.2.9\r\nAppc CLI: 6.2.3\r\nTi CLI Ver: 5.0.14\r\nAlloy Ver: 1.9.13\r\nNode Ver: 6.10.1\r\nJava Ver: 1.8.0_101\r\nDevices: ⇨ google Nexus 5 --- Android 6.0.1\r\n ⇨ google Pixel --- Android 7.1.1\r\nMap module: 3.2.0, 3.3.0", "comment": { "comments": [], "maxResults": 0, "total": 0, "startAt": 0 } } }