{ "id": "171824", "key": "MOD-2436", "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": "2018-06-21T09:42:02.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "ybanev", "key": "ybanev", "displayName": "Yordan Banev", "active": true, "timeZone": "Europe/Athens" }, "updated": "2018-06-28T10:22:22.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": "From the community: This code is used to remove the current setted pin on the map and put a new one where the user have tapped.\r\nWhen you update the ti.map module in crash the app. It happens on Android 7 and 8.\r\n\r\n{code:js}\r\nvar Map = require('ti.map');\r\nvar mapview = null;\r\nvar circle = null;\r\nvar currentLatitude = null;\r\nvar currentLongitude = null;\r\nvar puntoEvento = null;\r\nvar currentAddress = null;\r\n\r\n//Function fired from a view where map is\r\nfunction setAnnotationOnLongPress(e){\r\n \t/*\r\n \t * {\"type\":\"longclick\",\"source\":{\"compassEnabled\":true,\"animate\":true,\"annotations\":[{\"showInfoWindow\":true,\"pincolor\":0,\"longitude\":9.7152357,\"latitude\":45.7138272,\r\n \t * \"title\":\"Tua Posizione\",\"subtitle\":\"Sblind\",\"apiName\":\"Ti.Proxy\",\"bubbleParent\":true,\"myid\":1}],\r\n \t * \"region\":{\"latitude\":45.7138272,\"longitude\":9.7152357,\"latitudeDelta\":0.01,\"longitudeDelta\":0.01},\r\n \t * \"mapType\":1,\"userLocation\":false,\"minZoomLevel\":2,\"zoom\":15.627570152282715,\"maxZoomLevel\":21,\"hiddenBehavior\":4,\"enabled\":true,\"visible\":true,\"touchEnabled\":true,\r\n \t * \"backgroundRepeat\":false,\"keepScreenOn\":false,\"children\":[],\"size\":{\"height\":594,\"width\":360,\"y\":0,\"x\":0},\"rect\":{\"absoluteX\":0,\"height\":594,\"width\":360,\"y\":0,\"absoluteY\":0,\"x\":0},\r\n \t * \"apiName\":\"Ti.Map\",\"bubbleParent\":true,\"regionFit\":true,\"soundEffectsEnabled\":true,\"horizontalWrap\":true,\"_events\":{\"click\":{}}},\"map\":{\"compassEnabled\":true,\"animate\":true,\r\n \t * \"annotations\":[{\"showInfoWindow\":true,\"pincolor\":0,\"longitude\":9.7152357,\"latitude\":45.7138272,\"title\":\"Tua Posizione\",\"subtitle\":\"Sblind\",\"apiName\":\"Ti.Proxy\",\"bubbleParent\":true,\"myid\":1}],\r\n \t * \"region\":{\"latitude\":45.7138272,\"longitude\":9.7152357,\"latitudeDelta\":0.01,\"longitudeDelta\":0.01},\"mapType\":1,\"userLocation\":false,\"minZoomLevel\":2,\"zoom\":15.627570152282715,\r\n \t * \"maxZoomLevel\":21,\"hiddenBehavior\":4,\"enabled\":true,\"visible\":true,\"touchEnabled\":true,\"backgroundRepeat\":false,\"keepScreenOn\":false,\"children\":[],\"size\":{\"height\":594,\"width\":360,\"y\":0,\"x\":0},\r\n \t * \"rect\":{\"absoluteX\":0,\"height\":594,\"width\":360,\"y\":0,\"absoluteY\":0,\"x\":0},\"apiName\":\"Ti.Map\",\"bubbleParent\":true,\"regionFit\":true,\"soundEffectsEnabled\":true,\"horizontalWrap\":true,\r\n \t * \"_events\":{\"click\":{}}},\"cancelBubble\":false,\"longitude\":9.713328257203102,\"latitude\":45.71091987188729,\"bubbles\":true}\r\n \t */\r\n currentLatitude = e.latitude;\r\n currentLongitude = e.longitude;\r\n getGoogleGeo();\r\n\r\n mapview.removeAnnotation(puntoEvento);\r\n //mapview.removeAllAnnotations();\r\n puntoEvento.latitude = e.latitude;\r\n\tpuntoEvento.longitude = e.longitude;\r\n\t\r\n\t\r\n\tmapview.addAnnotation(puntoEvento);\r\n\r\n\tmapview.region = {\r\n\t\tlatitude : e.latitude,\r\n\t\tlongitude : e.longitude,\r\n\t\tlatitudeDelta : 0.01,\r\n\t\tlongitudeDelta : 0.01\r\n\t};\r\n\r\n\tif(OS_ANDROID)\r\n\t\tmapview.removeCircle(circle);\r\n\telse\r\n\t\tmapview.removeAllCircles();\r\n\r\n\tcircle = Map.createCircle({\r\n\t\tcenter : {\r\n\t\t\tlatitude : e.latitude,\r\n\t\t\tlongitude : e.longitude\r\n\t\t},\r\n\t\tstrokeWidth : 3,\r\n\t\tstrokeColor : 'black',\r\n\t\tradius : parseInt(verticalSlider.value, 10), //1km\r\n\t\tfillColor : \"#20FF0000\"\r\n\t});\r\n\tmapview.addCircle(circle);\r\n\t\r\n}\r\n\r\nfunction loadMap(circleExtension) {\r\n\tpuntoEvento = Map.createAnnotation({\r\n\t\tlatitude : currentLatitude,\r\n\t\tlongitude : currentLongitude,\r\n\t\ttitle : \"Your position\",\r\n\t\tsubtitle : 'Sblind',\r\n\t\tpincolor : Map.ANNOTATION_RED,\r\n\t\tmyid : 1 // Custom property to uniquely identify this annotation.\r\n\t});\r\n\r\n\tmapview = Map.createView({\r\n\t\tmapType : Map.NORMAL_TYPE,\r\n\t\tregion : {\r\n\t\t\tlatitude : currentLatitude,\r\n\t\t\tlongitude : currentLongitude,\r\n\t\t\tlatitudeDelta : 0.01,\r\n\t\t\tlongitudeDelta : 0.01\r\n\t\t},\r\n\t\tanimate : true,\r\n\t\tregionFit : true,\r\n\t\tuserLocation : false,\r\n\t\tannotations : [puntoEvento]\r\n\t});\r\n\r\n\tcircle = Map.createCircle({\r\n\t\tcenter : {\r\n\t\t\tlatitude : currentLatitude,\r\n\t\t\tlongitude : currentLongitude\r\n\t\t},\r\n\t\tstrokeWidth : 3,\r\n\t\tstrokeColor : 'black',\r\n\t\tradius : (_.isUndefined(circleExtension)) ? 50 : circleExtension, //1km\r\n\t\tfillColor : \"#20FF0000\"\r\n\t});\r\n\tmapview.addCircle(circle);\r\n\r\n\t$.mapContainer.add(mapview);\r\n\t// Handle click events on any annotations on this map.\r\n\tmapview.addEventListener('click', function(evt) {\r\n\t\tTi.API.info(\"Clicked \" + evt.clicksource + \" on \" + evt.latitude + \",\" + evt.longitude);\r\n\t});\r\n\t$.main.open();\r\n}\r\n\r\nfunction loadCoordinate(){\r\n\tdisegnaControlli();\r\n\tif (Ti.Geolocation.locationServicesEnabled) {\r\n\t Ti.Geolocation.setAccuracy(Ti.Geolocation.ACCURACY_BEST);//Ti.Geolocation.ACCURACY_BEST;\r\n\r\n\t if(Titanium.Platform.osname != \"android\")\r\n\t Ti.Geolocation.setDistanceFilter(10);\r\n \t\r\n \tTitanium.Geolocation.getCurrentPosition(function(e){//Funzione per posizione corrente\r\n \t\tif(e.coords!=null){\r\n \t\t\tTi.API.info(JSON.stringify(e));\r\n \t\t\tcurrentLatitude = e.coords.latitude;\r\n \t\t\tcurrentLongitude = e.coords.longitude;\r\n \t\t\tgetGoogleGeo();\r\n\t\t \tloadMap();\r\n\t }\r\n \t});\r\n\t}\r\n\telse{\r\n\t\t_Utility.popUp(L('gps_disabilitato'), L('gps_disabilitato_msg'));\r\n\t\tcurrentLatitude = 45.7138565;\r\n\t\tcurrentLongitude = 9.7151823;\r\n\t\tgetGoogleGeo();\r\n \tloadMap();\r\n\t}\r\n}\r\n\r\nfunction openMap() {\r\n\tif(_.isNull(Alloy.Globals.mapObj)){\r\n\t\tif (!Titanium.Geolocation.hasLocationPermissions(Titanium.Geolocation.AUTHORIZATION_WHEN_IN_USE)) {\r\n\t\t\tTitanium.Geolocation.requestLocationPermissions(Titanium.Geolocation.AUTHORIZATION_WHEN_IN_USE, function(result) {\r\n\t\t\t\tif (result.success) {\r\n\t\t\t\t\tloadCoordinate();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_Utility.popUp(L(\"no_permessi_title\"),L(\"no_permessi\"));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tloadCoordinate();\r\n\t\t}\r\n\t}\r\n\telse{\r\n\t\tTi.API.info(JSON.stringify(Alloy.Globals.mapObj));\r\n\t\tcurrentLatitude = Alloy.Globals.mapObj.latitudine;\r\n\t\tcurrentLongitude = Alloy.Globals.mapObj.longitudine;\r\n\t\t\r\n\t\tgetGoogleGeo();\r\n\t\t\r\n\t\tdisegnaControlli(Alloy.Globals.mapObj.raggio);\r\n\t\t$.label.text = Alloy.Globals.mapObj.raggio;\r\n\t\tloadMap(Alloy.Globals.mapObj.raggio);\r\n\t}\r\n}\r\n\r\nvar tentativiTimeout = 3;\r\nvar tentativiGoogle = 5;\r\nvar pausaTraTentativi = 200;//ms\r\nvar timeoutRichiesta = 5000;//ms\r\n\r\nfunction getGoogleGeo() {\r\n\tif (Titanium.Network.online) {\r\n\t\tvar addrUrl = \"http://maps.googleapis.com/maps/api/geocode/json?sensor=true&latlng=\" + currentLatitude + \",\" + currentLongitude;\r\n\t\t/* web-service call */\r\n\t\tTi.API.info(addrUrl);\r\n\t\tvar addrReq = Titanium.Network.createHTTPClient();\r\n\t\taddrReq.setTimeout(timeoutRichiesta);\r\n\t\taddrReq.open(\"GET\", addrUrl);\r\n\r\n\t\taddrReq.onerror = function() {\r\n\t\t\tif(tentativiTimeout > 0){ // riprovo a fare la richiesta\r\n\t\t\t\ttentativiTimeout--;\r\n\t\t\t\tgetGoogleGeo();\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t\tcurrentAddress = currentLatitude + \",\" + currentLongitude;\r\n\t\t};\r\n\t\taddrReq.onload = function() {\r\n\t\t\tvar response = JSON.parse(this.responseText);\r\n\t\t\tvar street,\r\n\t\t\t num,\r\n\t\t\t city,\r\n\t\t\t province,\r\n\t\t\t cap,\r\n\t\t\t country;\r\n\t\t\tif (response.status == \"OK\") {\r\n\t\t\t\tvar resLen = response.results[0].address_components.length;\r\n\t\t\t\tfor (var i = 0; i < resLen; i++) {\r\n\t\t\t\t\tswitch (response.results[0].address_components[i].types[0]) {\r\n\t\t\t\t\tcase \"street_number\":\r\n\t\t\t\t\t\tnum = response.results[0].address_components[i].long_name;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"route\":\r\n\t\t\t\t\t\tstreet = response.results[0].address_components[i].long_name;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"locality\":\r\n\t\t\t\t\t\tcity = response.results[0].address_components[i].long_name;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"administrative_area_level_2\":\r\n\t\t\t\t\t\tprovince = response.results[0].address_components[i].short_name;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"postal_code\":\r\n\t\t\t\t\t\tcap = response.results[0].address_components[i].long_name;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"country\":\r\n\t\t\t\t\t\tcountry = response.results[0].address_components[i].long_name;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t\tcurrentAddress = street + \",\" + num + \",\" + cap + \",\" + city + \",\" + province + \",\" + country;\r\n\t\t\t\tTi.API.info(currentAddress);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tif(tentativiGoogle > 0){ // se non ho esaurito i tentativi aspetto un attimo e riprovo\r\n\t\t\t\t\ttentativiGoogle--;\r\n\t\t\t\t\tsetTimeout(function(e){getGoogleGeo();}, pausaTraTentativi);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t\tcurrentAddress = currentLatitude + \",\" + currentLongitude;\r\n\t\t\t}\r\n\t\t\r\n\t\t};\r\n\t\taddrReq.send(null);\r\n\t}\r\n\telse{\r\n\t\tcurrentAddress = currentLatitude + \",\" + currentLongitude;\r\n\t}\r\n}\r\n\r\nopenMap();\r\n}\r\n{code}", "attachment": [], "flagged": false, "summary": "Ti.Map: Android - App crash with map when using v4.0.0+", "creator": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "comment": { "comments": [ { "id": "438583", "author": { "name": "ybanev", "key": "ybanev", "displayName": "Yordan Banev", "active": true, "timeZone": "Europe/Athens" }, "body": "[~Pietro], I believe you reported the issue in github. I tried to run the application, but I got the the point where the code is looking for {{Alloy.Globals.mapObj}} which is {{undefined}}. Is it defined outside this code sample? ", "updateAuthor": { "name": "ybanev", "key": "ybanev", "displayName": "Yordan Banev", "active": true, "timeZone": "Europe/Athens" }, "created": "2018-06-21T13:37:30.000+0000", "updated": "2018-06-21T13:38:04.000+0000" }, { "id": "438584", "author": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "body": "Yes is a property that comes from another page, I save the current settings of the map so if you close it and want to modify it before save its avaiable:\r\n\r\nAlloy.Globals.mapObj = {\r\n\t\tlatitudine: currentLatitude,\r\n\t\tlongitudine: currentLongitude,\r\n\t\tindirizzo: inidirizzoCorrente,\r\n\t\traggio: parseInt(verticalSlider.value, 10)\r\n\t};", "updateAuthor": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "created": "2018-06-21T13:41:21.000+0000", "updated": "2018-06-21T13:41:21.000+0000" }, { "id": "438585", "author": { "name": "ybanev", "key": "ybanev", "displayName": "Yordan Banev", "active": true, "timeZone": "Europe/Athens" }, "body": "Would you be able to provide a sample that runs as a standalone application and reproduces the issue for me in order to investigate it ? An archive of a whole project would do, too.", "updateAuthor": { "name": "ybanev", "key": "ybanev", "displayName": "Yordan Banev", "active": true, "timeZone": "Europe/Athens" }, "created": "2018-06-21T13:47:33.000+0000", "updated": "2018-06-21T13:48:10.000+0000" }, { "id": "438586", "author": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "body": "Unfortunately I don't have authorization right know to send the full project.\r\n\r\nI have a map with a pin set on it and a circle around it.\r\n\r\nOn longpress that pin should remove and set a new one on the point longpressed by he user.\r\n\r\nthis procedure cause app to crash so i back to v4.0.0", "updateAuthor": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "created": "2018-06-21T13:51:16.000+0000", "updated": "2018-06-21T13:51:16.000+0000" }, { "id": "438587", "author": { "name": "ybanev", "key": "ybanev", "displayName": "Yordan Banev", "active": true, "timeZone": "Europe/Athens" }, "body": "Can you share a console error log? ", "updateAuthor": { "name": "ybanev", "key": "ybanev", "displayName": "Yordan Banev", "active": true, "timeZone": "Europe/Athens" }, "created": "2018-06-21T14:03:04.000+0000", "updated": "2018-06-21T14:03:30.000+0000" }, { "id": "438588", "author": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "body": "It's too lo, I dngIon't know how to attach te firs thit lines:\r\n\r\n[INFO] : art: art/runtime/thread.cc:1665] Throwing new exception 'Attempt to invoke virtual method 'java.lang.Object org.appcelerator.kroll.KrollDict.get(java.lang.Object)' on a null object reference' with unexpected pending exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object org.appcelerator.kroll.KrollDict.get(java.lang.Object)' on a null object reference\r\n[INFO] : art: art/runtime/thread.cc:1665] at void org.appcelerator.kroll.KrollProxy.onPropertyChanged(java.lang.String, java.lang.Object) (KrollProxy.java:1056)\r\n[INFO] : art: art/runtime/thread.cc:1665] at void ti.map.AnnotationProxy.onPropertyChanged(java.lang.String, java.lang.Object) (AnnotationProxy.java:389)\r\n[INFO] : art: art/runtime/thread.cc:1665] at boolean org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(long, java.lang.Object, long, java.lang.String, java.lang.Object, boolean, boolean, int, java.lang.String) (V8Object.java:-2)\r\n[INFO] : art: art/runtime/thread.cc:1665] at boolean org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(org.appcelerator.kroll.KrollObject, java.lang.String, java.lang.Object, boolean, boolean, int, java.lang.String) (V8Object.java:63)\r\n[INFO] : art: art/runtime/thread.cc:1665] at boolean org.appcelerator.kroll.KrollProxy.doFireEvent(java.lang.String, java.lang.Object) (KrollProxy.java:962)\r\n[INFO] : art: art/runtime/thread.cc:1665] at boolean org.appcelerator.kroll.KrollProxy.handleMessage(android.os.Message) (KrollProxy.java:1186)\r\n[INFO] : art: art/runtime/thread.cc:1665] at boolean org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(android.os.Message) (TiViewProxy.java:394)\r\n[INFO] : art: art/runtime/thread.cc:1665] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)\r\n[INFO] : art: art/runtime/thread.cc:1665] at void android.os.Looper.loop() (Looper.java:154)\r\n[INFO] : art: art/runtime/thread.cc:1665] at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6311)\r\n[INFO] : art: art/runtime/thread.cc:1665] at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)\r\n[INFO] : art: art/runtime/thread.cc:1665] at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:872)\r\n[INFO] : art: art/runtime/thread.cc:1665] at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:762)\r\n[INFO] : art: art/runtime/thread.cc:1665]\r\n[INFO] : art: art/runtime/runtime.cc:403] Runtime aborting...\r\n[INFO] : art: art/runtime/runtime.cc:403] Aborting thread:\r\n[INFO] : art: art/runtime/runtime.cc:403] \"main\" prio=5 tid=1 Runnable\r\n[INFO] : art: art/runtime/runtime.cc:403] | group=\"\" sCount=0 dsCount=0 obj=0x75acaf78 self=0xad404400\r\n[INFO] : art: art/runtime/runtime.cc:403] | sysTid=6423 nice=1 cgrp=default sched=0/0 handle=0xb02cb534\r\n[INFO] : art: art/runtime/runtime.cc:403] | state=R schedstat=( 0 0 0 ) utm=609 stm=105 core=2 HZ=100\r\n[INFO] : art: art/runtime/runtime.cc:403] | stack=0xbe741000-0xbe743000 stackSize=8MB\r\n[INFO] : art: art/runtime/runtime.cc:403] | held mutexes= \"abort lock\" \"mutator lock\"(shared held)\r\n\r\n\r\n\r\n\r\n", "updateAuthor": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "created": "2018-06-21T14:32:20.000+0000", "updated": "2018-06-21T14:32:20.000+0000" }, { "id": "438589", "author": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "body": "\"It's too lo, I dngIon't know how to attach te firs thit lines:\"\r\ndamn mac keyboard it's:\r\n\r\nIt's too long to paste, I don't know how to attach it, the first lines are:", "updateAuthor": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "created": "2018-06-21T14:33:47.000+0000", "updated": "2018-06-21T14:33:47.000+0000" }, { "id": "438590", "author": { "name": "ybanev", "key": "ybanev", "displayName": "Yordan Banev", "active": true, "timeZone": "Europe/Athens" }, "body": "If you want you can use pastebin for all of it and share the link here.", "updateAuthor": { "name": "ybanev", "key": "ybanev", "displayName": "Yordan Banev", "active": true, "timeZone": "Europe/Athens" }, "created": "2018-06-21T14:36:21.000+0000", "updated": "2018-06-21T14:36:21.000+0000" }, { "id": "438592", "author": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "body": "Oooh I forgot about pastebin\r\nhttps://pastebin.com/M3iwAm5s", "updateAuthor": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "created": "2018-06-21T14:48:34.000+0000", "updated": "2018-06-21T14:48:34.000+0000" }, { "id": "438628", "author": { "name": "ybanev", "key": "ybanev", "displayName": "Yordan Banev", "active": true, "timeZone": "Europe/Athens" }, "body": "[~Pietro] I am unable to pin-point where the problem may be from the full log. Is there a chance you can reproduce the crash in a separate project doing the flow you described?", "updateAuthor": { "name": "ybanev", "key": "ybanev", "displayName": "Yordan Banev", "active": true, "timeZone": "Europe/Athens" }, "created": "2018-06-22T10:52:35.000+0000", "updated": "2018-06-22T10:52:35.000+0000" } ], "maxResults": 10, "total": 10, "startAt": 0 } } }