nextgis / android_gisapp

:dart: GIS application for Android
http://nextgis.com/nextgis-mobile
GNU General Public License v3.0
134 stars 107 forks source link

Падение при синхронизации #460

Closed BishopGIS closed 8 years ago

BishopGIS commented 8 years ago
java.lang.RuntimeException: Error receiving broadcast Intent { act=com.nextgis.maplib.notify_update flg=0x10 (has extras) } in com.nextgis.maplib.map.MapContentProviderHelper$VectorLayerNotifyReceiver@3e3f0065
    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:922)
    at android.os.Handler.handleCallback(Handler.java:815)
    at android.os.Handler.dispatchMessage(Handler.java:104)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5534)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:955)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:750)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.nextgis.maplib.datasource.GeometryRTree$Node.setParent(com.nextgis.maplib.datasource.GeometryRTree$Node)' on a null object reference
    at com.nextgis.maplib.datasource.GeometryRTree$Node.add(GeometryRTree.java:788)
    at com.nextgis.maplib.datasource.GeometryRTree.splitNode(GeometryRTree.java:477)
    at com.nextgis.maplib.datasource.GeometryRTree.insert(GeometryRTree.java:429)
    at com.nextgis.maplib.datasource.GeometryRTree.addItem(GeometryRTree.java:145)
    at com.nextgis.maplib.map.VectorLayer.cacheGeometryEnvelope(VectorLayer.java:625)
    at com.nextgis.maplib.map.VectorLayer.notifyUpdate(VectorLayer.java:2352)
    at com.nextgis.maplib.map.MapContentProviderHelper$VectorLayerNotifyReceiver.onReceive(MapContentProviderHelper.java:233)
    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:912)
    ... 8 more
4eRTuk commented 8 years ago

Это случайно не на том слое, который с разными СК?

BishopGIS commented 8 years ago

В логе для sync к сожалению не пишется эта информация (надо бы добавить). Но в тикете я писал, что СК надо проверять при синхронизации. #452

4eRTuk commented 8 years ago

СК проверяется при создании слоя и запоминается. Но если данные невалидные, то видимо при синхронизации их нужно просто исключать.

BishopGIS commented 8 years ago

Ага. Если охват геометрии для 4326 выходит за -180 / 180 -90 / 90 - то выкидываем Аналогично для 3857 - но там уже 20 с хвостиком миллионов.