Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Array index out of bounds exception on map #4611

Closed
Lineflyer opened this issue Jan 11, 2015 · 12 comments
Closed

Array index out of bounds exception on map #4611

Lineflyer opened this issue Jan 11, 2015 · 12 comments
Labels
Bug Issues classified as a bug

Comments

@Lineflyer
Copy link
Member

I am sure we already have an issue somewhere with a similar thing (or it is just on Google Play crash reports up to now):

Normally this issue happens after using the live map quite a long time (scrolling, loading, and so on).
However just now I tested 2015.01.11-RC with all available connectors activated and just after some movement of the live map I got the following in the log.
Note: This is no crash at that time, only the exception in the debug log.

23:25:57.409 Error cgeo 3811  [main] GoogleMapView.draw
23:25:57.409 Error cgeo 3811  java.lang.ArrayIndexOutOfBoundsException: length=40; index=52
23:25:57.409 Error cgeo 3811    at com.google.android.maps.ItemizedOverlay.draw(ItemizedOverlay.java:241)
23:25:57.409 Error cgeo 3811    at cgeo.geocaching.maps.google.v1.GoogleCacheOverlay.superDraw(GoogleCacheOverlay.java:96)
23:25:57.409 Error cgeo 3811    at cgeo.geocaching.maps.AbstractItemizedOverlay.draw(AbstractItemizedOverlay.java:44)
23:25:57.409 Error cgeo 3811    at cgeo.geocaching.maps.CachesOverlay.draw(CachesOverlay.java:104)
23:25:57.409 Error cgeo 3811    at cgeo.geocaching.maps.google.v1.GoogleCacheOverlay.draw(GoogleCacheOverlay.java:66)
23:25:57.409 Error cgeo 3811    at com.google.android.maps.Overlay.draw(Overlay.java:179)
23:25:57.409 Error cgeo 3811    at com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:45)
23:25:57.409 Error cgeo 3811    at com.google.android.maps.MapView.onDraw(MapView.java:532)
23:25:57.409 Error cgeo 3811    at android.view.View.draw(View.java:15303)
23:25:57.409 Error cgeo 3811    at cgeo.geocaching.maps.google.v1.GoogleMapView.draw(GoogleMapView.java:68)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14197)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14239)
23:25:57.409 Error cgeo 3811    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3272)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14134)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14239)
23:25:57.409 Error cgeo 3811    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3272)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14134)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14239)
23:25:57.409 Error cgeo 3811    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3272)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14134)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14239)
23:25:57.409 Error cgeo 3811    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3272)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14134)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14239)
23:25:57.409 Error cgeo 3811    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3272)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14134)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14239)
23:25:57.409 Error cgeo 3811    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3272)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14134)
23:25:57.409 Error cgeo 3811    at android.view.View.getDisplayList(View.java:14239)
23:25:57.409 Error cgeo 3811    at android.view.HardwareRenderer$GlRenderer.buildDisplayList(HardwareRenderer.java:1570)
23:25:57.409 Error cgeo 3811    at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1449)
23:25:57.409 Error cgeo 3811    at android.view.ViewRootImpl.draw(ViewRootImpl.java:2705)
23:25:57.409 Error cgeo 3811    at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2571)
23:25:57.409 Error cgeo 3811    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2143)
23:25:57.409 Error cgeo 3811    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1236)
23:25:57.409 Error cgeo 3811    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6471)
23:25:57.409 Error cgeo 3811    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
23:25:57.409 Error cgeo 3811    at android.view.Choreographer.doCallbacks(Choreographer.java:603)
23:25:57.409 Error cgeo 3811    at android.view.Choreographer.doFrame(Choreographer.java:573)
23:25:57.409 Error cgeo 3811    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789)
23:25:57.409 Error cgeo 3811    at android.os.Handler.handleCallback(Handler.java:733)
23:25:57.409 Error cgeo 3811    at android.os.Handler.dispatchMessage(Handler.java:95)
23:25:57.409 Error cgeo 3811    at android.os.Looper.loop(Looper.java:157)
23:25:57.409 Error cgeo 3811    at android.app.ActivityThread.main(ActivityThread.java:5356)
23:25:57.409 Error cgeo 3811    at java.lang.reflect.Method.invokeNative(Native Method)
23:25:57.409 Error cgeo 3811    at java.lang.reflect.Method.invoke(Method.java:515)
23:25:57.409 Error cgeo 3811    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
23:25:57.409 Error cgeo 3811    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
23:25:57.409 Error cgeo 3811    at dalvik.system.NativeStart.main(Native Method)
@Lineflyer Lineflyer added Bug Issues classified as a bug Unverified Issue not yet confirmed/reproduced or feature requests not yet checked for plausibility labels Jan 11, 2015
@Lineflyer
Copy link
Member Author

Under the above mentioned conditions it keeps happening on nearly each triggered refresh of the live map (by scrolling).

@Lineflyer
Copy link
Member Author

Still happening with release 2016.03.06 under the above mentioned conditions.

21:26:00.103 Error cgeo 5692  [main] GoogleMapView.draw
21:26:00.103 Error cgeo 5692  java.lang.ArrayIndexOutOfBoundsException: length=697; index=697
21:26:00.103 Error cgeo 5692    at com.google.android.maps.ItemizedOverlay.getIndexToDraw(ItemizedOverlay.java:211)
21:26:00.104 Error cgeo 5692    at com.google.android.maps.ItemizedOverlay.draw(ItemizedOverlay.java:240)
21:26:00.104 Error cgeo 5692    at cgeo.geocaching.maps.google.v1.GoogleCacheOverlay.superDraw(GoogleCacheOverlay.java:101)
21:26:00.104 Error cgeo 5692    at cgeo.geocaching.maps.AbstractItemizedOverlay.draw(AbstractItemizedOverlay.java:44)
21:26:00.104 Error cgeo 5692    at cgeo.geocaching.maps.CachesOverlay.draw(CachesOverlay.java:104)
21:26:00.104 Error cgeo 5692    at cgeo.geocaching.maps.google.v1.GoogleCacheOverlay.draw(GoogleCacheOverlay.java:70)
21:26:00.104 Error cgeo 5692    at com.google.android.maps.Overlay.draw(Overlay.java:179)
21:26:00.104 Error cgeo 5692    at com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:42)
21:26:00.105 Error cgeo 5692    at com.google.android.maps.MapView.onDraw(MapView.java:532)
21:26:00.105 Error cgeo 5692    at android.view.View.draw(View.java:16219)
21:26:00.105 Error cgeo 5692    at cgeo.geocaching.maps.google.v1.GoogleMapView.draw(GoogleMapView.java:69)
21:26:00.105 Error cgeo 5692    at android.view.View.updateDisplayListIfDirty(View.java:15139)
21:26:00.105 Error cgeo 5692    at android.view.View.getDisplayList(View.java:15162)
21:26:00.105 Error cgeo 5692    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3687)
21:26:00.105 Error cgeo 5692    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3666)
21:26:00.105 Error cgeo 5692    at android.view.View.updateDisplayListIfDirty(View.java:15099)
21:26:00.106 Error cgeo 5692    at android.view.View.getDisplayList(View.java:15162)
21:26:00.106 Error cgeo 5692    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3687)
21:26:00.106 Error cgeo 5692    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3666)
21:26:00.106 Error cgeo 5692    at android.view.View.updateDisplayListIfDirty(View.java:15099)
21:26:00.106 Error cgeo 5692    at android.view.View.getDisplayList(View.java:15162)
21:26:00.106 Error cgeo 5692    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3687)
21:26:00.106 Error cgeo 5692    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3666)
21:26:00.106 Error cgeo 5692    at android.view.View.updateDisplayListIfDirty(View.java:15099)
21:26:00.106 Error cgeo 5692    at android.view.View.getDisplayList(View.java:15162)
21:26:00.107 Error cgeo 5692    at android.view.View.draw(View.java:15940)
21:26:00.107 Error cgeo 5692    at android.view.ViewGroup.drawChild(ViewGroup.java:3703)
21:26:00.107 Error cgeo 5692    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3497)
21:26:00.107 Error cgeo 5692    at android.view.View.updateDisplayListIfDirty(View.java:15134)
21:26:00.107 Error cgeo 5692    at android.view.View.getDisplayList(View.java:15162)
21:26:00.107 Error cgeo 5692    at android.view.View.draw(View.java:15940)
21:26:00.107 Error cgeo 5692    at android.view.ViewGroup.drawChild(ViewGroup.java:3703)
21:26:00.107 Error cgeo 5692    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3497)
21:26:00.107 Error cgeo 5692    at com.android.internal.policy.impl.MultiPhoneWindow$MultiPhoneDecorView.dispatchDraw(MultiPhoneWindow.java:900)
21:26:00.108 Error cgeo 5692    at android.view.View.draw(View.java:16222)
21:26:00.108 Error cgeo 5692    at android.widget.FrameLayout.draw(FrameLayout.java:592)
21:26:00.108 Error cgeo 5692    at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2932)
21:26:00.108 Error cgeo 5692    at com.android.internal.policy.impl.MultiPhoneWindow$MultiPhoneDecorView.draw(MultiPhoneWindow.java:906)
21:26:00.108 Error cgeo 5692    at android.view.View.updateDisplayListIfDirty(View.java:15139)
21:26:00.108 Error cgeo 5692    at android.view.View.getDisplayList(View.java:15162)
21:26:00.108 Error cgeo 5692    at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:275)
21:26:00.108 Error cgeo 5692    at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:281)
21:26:00.109 Error cgeo 5692    at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:320)
21:26:00.109 Error cgeo 5692    at android.view.ViewRootImpl.draw(ViewRootImpl.java:2751)
21:26:00.109 Error cgeo 5692    at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2584)
21:26:00.109 Error cgeo 5692    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2176)
21:26:00.109 Error cgeo 5692    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1191)
21:26:00.109 Error cgeo 5692    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6642)
21:26:00.109 Error cgeo 5692    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
21:26:00.109 Error cgeo 5692    at android.view.Choreographer.doCallbacks(Choreographer.java:590)
21:26:00.109 Error cgeo 5692    at android.view.Choreographer.doFrame(Choreographer.java:560)
21:26:00.110 Error cgeo 5692    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763)
21:26:00.110 Error cgeo 5692    at android.os.Handler.handleCallback(Handler.java:739)
21:26:00.110 Error cgeo 5692    at android.os.Handler.dispatchMessage(Handler.java:95)
21:26:00.110 Error cgeo 5692    at android.os.Looper.loop(Looper.java:145)
21:26:00.110 Error cgeo 5692    at android.app.ActivityThread.main(ActivityThread.java:5951)
21:26:00.110 Error cgeo 5692    at java.lang.reflect.Method.invoke(Native Method)
21:26:00.110 Error cgeo 5692    at java.lang.reflect.Method.invoke(Method.java:372)
21:26:00.110 Error cgeo 5692    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
21:26:00.111 Error cgeo 5692    at com.android.internal.os

@Lineflyer Lineflyer removed the Unverified Issue not yet confirmed/reproduced or feature requests not yet checked for plausibility label Mar 7, 2016
@Lineflyer
Copy link
Member Author

Another feedback for the current beta version (2016.11.21-RC):

java.lang.ArrayIndexOutOfBoundsException: length=316; index=316
	at com.google.android.maps.ItemizedOverlay.getIndexToDraw(ItemizedOverlay.java:211)
	at com.google.android.maps.ItemizedOverlay.draw(ItemizedOverlay.java:240)
	at cgeo.geocaching.maps.google.v1.GoogleCacheOverlay.superDraw(GoogleCacheOverlay.java:100)
	at cgeo.geocaching.maps.AbstractItemizedOverlay.draw(AbstractItemizedOverlay.java:44)
	at cgeo.geocaching.maps.CachesOverlay.draw(CachesOverlay.java:108)
	at cgeo.geocaching.maps.google.v1.GoogleCacheOverlay.draw(GoogleCacheOverlay.java:70)
	at com.google.android.maps.Overlay.draw(Overlay.java:179)
	at com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:42)
	at com.google.android.maps.MapView.onDraw(MapView.java:532)
	at android.view.View.draw(View.java:14538)
	at cgeo.geocaching.maps.google.v1.GoogleMapView.draw(GoogleMapView.java:69)
	at android.view.View.getDisplayList(View.java:13435)
	at android.view.View.getDisplayList(View.java:13477)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3092)
	at android.view.View.getDisplayList(View.java:13373)
	at android.view.View.getDisplayList(View.java:13477)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3092)
	at android.view.View.getDisplayList(View.java:13373)
	at android.view.View.getDisplayList(View.java:13477)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3092)
	at android.view.View.getDisplayList(View.java:13373)
	at android.view.View.getDisplayList(View.java:13477)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3092)
	at android.view.View.getDisplayList(View.java:13373)
	at android.view.View.getDisplayList(View.java:13477)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3092)
	at android.view.View.getDisplayList(View.java:13373)
	at android.view.View.getDisplayList(View.java:13477)
	at android.view.HardwareRenderer$GlRenderer.buildDisplayList(HardwareRenderer.java:1570)
	at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1449)
	at android.view.ViewRootImpl.draw(ViewRootImpl.java:2426)
	at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2296)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1926)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1042)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5958)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
	at android.view.Choreographer.doCallbacks(Choreographer.java:574)
	at android.view.Choreographer.doFrame(Choreographer.java:544)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
	at android.os.Handler.handleCallback(Handler.java:733)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:136)
	at android.app.ActivityThread.main(ActivityThread.java:5118)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:515)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
	at dalvik.system.NativeStart.main(Native Method)

Users comment:
abstürze beim (schnellen) raus zoomen auf Google Satellit

Translation:
Crash when zooming out (fast) on Google Satellite

@Lineflyer
Copy link
Member Author

While testing the new cache type parsing on the mp I run into this crash very frequently. (almost on every move of the (Google)map.
Sometimes it is only visible in the log but the app keeps working, sometimes it crashes.

Log:

12:15:58.153 Error cgeo 16717  [network--10] GCMap.parseMapJSON
12:15:58.153 Error cgeo 16717  java.lang.ArrayIndexOutOfBoundsException: length=9; index=9
12:15:58.153 Error cgeo 16717  	at cgeo.geocaching.connector.gc.IconDecoder.parseMapPNG(IconDecoder.java:75)
12:15:58.153 Error cgeo 16717  	at cgeo.geocaching.connector.gc.GCMap.parseMapJSON(GCMap.java:199)
12:15:58.153 Error cgeo 16717  	at cgeo.geocaching.connector.gc.GCMap$1.apply(GCMap.java:322)
12:15:58.153 Error cgeo 16717  	at cgeo.geocaching.connector.gc.GCMap$1.apply(GCMap.java:314)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.functions.Functions$1.apply(Functions.java:44)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.functions.Functions$1.apply(Functions.java:38)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.flowable.FlowableZip$ZipCoordinator.drain(FlowableZip.java:243)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.flowable.FlowableZip$ZipSubscriber.onNext(FlowableZip.java:388)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.subscriptions.DeferredScalarSubscription.complete(DeferredScalarSubscription.java:117)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.single.SingleToFlowable$SingleToFlowableObserver.onSuccess(SingleToFlowable.java:63)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.single.SingleResumeNext$ResumeMainSingleObserver.onSuccess(SingleResumeNext.java:65)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.single.SingleFlatMap$SingleFlatMapCallback$FlatMapSingleObserver.onSuccess(SingleFlatMap.java:109)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.single.SingleJust.subscribeActual(SingleJust.java:30)
12:15:58.153 Error cgeo 16717  	at io.reactivex.Single.subscribe(Single.java:2558)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.single.SingleFlatMap$SingleFlatMapCallback.onSuccess(SingleFlatMap.java:83)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.single.SingleJust.subscribeActual(SingleJust.java:30)
12:15:58.153 Error cgeo 16717  	at io.reactivex.Single.subscribe(Single.java:2558)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.single.SingleFlatMap.subscribeActual(SingleFlatMap.java:36)
12:15:58.153 Error cgeo 16717  	at io.reactivex.Single.subscribe(Single.java:2558)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.single.SingleResumeNext.subscribeActual(SingleResumeNext.java:39)
12:15:58.153 Error cgeo 16717  	at io.reactivex.Single.subscribe(Single.java:2558)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.single.SingleToFlowable.subscribeActual(SingleToFlowable.java:37)
12:15:58.153 Error cgeo 16717  	at io.reactivex.Flowable.subscribe(Flowable.java:12218)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.flowable.FlowableZip$ZipCoordinator.subscribe(FlowableZip.java:129)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.flowable.FlowableZip.subscribeActual(FlowableZip.java:79)
12:15:58.153 Error cgeo 16717  	at io.reactivex.Flowable.subscribe(Flowable.java:12218)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.flowable.FlowableSingleSingle.subscribeActual(FlowableSingleSingle.java:38)
12:15:58.153 Error cgeo 16717  	at io.reactivex.Single.subscribe(Single.java:2558)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.completable.CompletableFromSingle.subscribeActual(CompletableFromSingle.java:29)
12:15:58.153 Error cgeo 16717  	at io.reactivex.Completable.subscribe(Completable.java:1517)
12:15:58.153 Error cgeo 16717  	at io.reactivex.Completable.blockingAwait(Completable.java:869)
12:15:58.153 Error cgeo 16717  	at cgeo.geocaching.connector.gc.GCMap.searchByViewport(GCMap.java:342)
12:15:58.153 Error cgeo 16717  	at cgeo.geocaching.connector.gc.GCMap.searchByViewport(GCMap.java:247)
12:15:58.153 Error cgeo 16717  	at cgeo.geocaching.connector.gc.GCConnector.searchByViewport(GCConnector.java:208)
12:15:58.153 Error cgeo 16717  	at cgeo.geocaching.connector.ConnectorFactory$1.apply(ConnectorFactory.java:314)
12:15:58.153 Error cgeo 16717  	at cgeo.geocaching.connector.ConnectorFactory$1.apply(ConnectorFactory.java:311)
12:15:58.153 Error cgeo 16717  	at cgeo.geocaching.SearchResult$3$1.call(SearchResult.java:332)
12:15:58.153 Error cgeo 16717  	at cgeo.geocaching.SearchResult$3$1.call(SearchResult.java:328)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.maybe.MaybeFromCallable.subscribeActual(MaybeFromCallable.java:46)
12:15:58.153 Error cgeo 16717  	at io.reactivex.Maybe.subscribe(Maybe.java:3540)
12:15:58.153 Error cgeo 16717  	at io.reactivex.internal.operators.maybe.MaybeSubscribeOn$SubscribeTask.run(MaybeSubscribeOn.java:54)
12:15:58.153 Error cgeo 16717  	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
12:15:58.153 Error cgeo 16717  	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12:15:58.153 Error cgeo 16717  	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
12:15:58.153 Error cgeo 16717  	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
12:15:58.153 Error cgeo 16717  	at java.lang.Thread.run(Thread.java:818)

Version used: 2016.12.27-RC

@mucek4
Copy link
Member

mucek4 commented Dec 27, 2016

@Lineflyer this is mine new IconDecoder. Will take a look

@mucek4
Copy link
Member

mucek4 commented Dec 27, 2016

The last one shall be ok with #6203

@mucek4 mucek4 removed their assignment Dec 27, 2016
@Lineflyer
Copy link
Member Author

I can confirm, that the exception is gone now with the PR #6203

Looking closer at this issue I would say, that the other occurences are unrelated...so I leave this open for now.

@Lineflyer
Copy link
Member Author

While the post of today had another cause, the initial problem is still there and eems to be a rather big problem for our beta users. There are 16 reports for the 2016.12.09-RC version which is quite much given the fact, that we only have 3000 registered testers and most likely even less people also using it.

java.lang.ArrayIndexOutOfBoundsException: length=577; index=577
	at com.google.android.maps.ItemizedOverlay.getIndexToDraw(ItemizedOverlay.java:211)
	at com.google.android.maps.ItemizedOverlay.draw(ItemizedOverlay.java:240)
	at cgeo.geocaching.maps.google.v1.GoogleCacheOverlay.superDraw(GoogleCacheOverlay.java:100)
	at cgeo.geocaching.maps.AbstractItemizedOverlay.draw(AbstractItemizedOverlay.java:44)
	at cgeo.geocaching.maps.CachesOverlay.draw(CachesOverlay.java:108)
	at cgeo.geocaching.maps.google.v1.GoogleCacheOverlay.draw(GoogleCacheOverlay.java:70)
	at com.google.android.maps.Overlay.draw(Overlay.java:179)
	at com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:42)
	at com.google.android.maps.MapView.onDraw(MapView.java:532)
	at android.view.View.draw(View.java:17503)
	at cgeo.geocaching.maps.google.v1.GoogleMapView.draw(GoogleMapView.java:69)
	at android.view.View.updateDisplayListIfDirty(View.java:16496)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3907)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3887)
	at android.view.View.updateDisplayListIfDirty(View.java:16456)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3907)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3887)
	at android.view.View.updateDisplayListIfDirty(View.java:16456)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3907)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3887)
	at android.view.View.updateDisplayListIfDirty(View.java:16456)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3907)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3887)
	at android.view.View.updateDisplayListIfDirty(View.java:16456)
	at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3907)
	at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3887)
	at android.view.View.updateDisplayListIfDirty(View.java:16456)
	at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:325)
	at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:331)
	at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:366)
	at android.view.ViewRootImpl.draw(ViewRootImpl.java:3190)
	at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2989)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2571)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1486)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7467)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920)
	at android.view.Choreographer.doCallbacks(Choreographer.java:695)
	at android.view.Choreographer.doFrame(Choreographer.java:631)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906)
	at android.os.Handler.handleCallback(Handler.java:739)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:158)
	at android.app.ActivityThread.main(ActivityThread.java:7231)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

@Lineflyer
Copy link
Member Author

I tested this behaviour on live map again with 2016.12.28:

For me it occures in the logs quite often however it does not produce a crash of c:geo as long as debug logging is switched off.
So I assume (but that might be wrong) that the crash reports we receive are from users which activated (for whatever reason) debug logging and forgot about this setting. I have seen this on support mail and facebook several times.

Therefore two questions from my side:

  1. I do not understand the nature of this error: Is it critical or not? If not, is it possible to catch it in a way that also with debug logging active a crash is avoiced.
  2. I tend towards either having the debbug setting transient valid for the running session only or having a info box at startup telling, that c:geo runs in debug mode and might be less stable.

Lineflyer added a commit to cgeo/cgeo.github.io that referenced this issue Dec 30, 2016
rsudev added a commit to rsudev/c-geo-opensource that referenced this issue Jan 6, 2017
Make the lock protecting against concurrent
modification of the caches list also guard the
super method.
@rsudev
Copy link
Contributor

rsudev commented Jan 6, 2017

Filing through the crashes for the current RC, this came up again.
My assumption is, that the lock protecting the caches list during draw is held too short.
As I cannot test it (no GMaps on my phone), I provide a PR for other the look at and maybe check.

@Lineflyer
Copy link
Member Author

Exactly. The occurence raised also for me. But is only leads to a crash if I have debug logging active....see my posting above from 30.12.
Still good if it could be solved.

@Lineflyer
Copy link
Member Author

BTW: I can easily test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Issues classified as a bug
Projects
None yet
Development

No branches or pull requests

3 participants