streetcomplete / StreetComplete

Easy to use OpenStreetMap editor for Android
https://streetcomplete.app
GNU General Public License v3.0
3.7k stars 344 forks source link

Logs view crash #5613

Closed deevroman closed 3 days ago

deevroman commented 2 months ago

How to Reproduce

  1. Open log menu
  2. Click Share

https://github.com/streetcomplete/StreetComplete/assets/25708359/c7f8f7ac-058c-4a33-ac74-4a55d7586903

It probably comes from a large number of logs, but I'm not sure because sometimes sending worked for a large number of logs.

Expected Behavior The share menu is displayed

Versions affected StreetComplete 57.3

Bonus: crash when selecting filters (logs sended via email)

rhhsm commented 2 months ago

Can't reproduce (500 log items)

westnordost commented 2 months ago

Let's make this issue about the crash, because for issues with exporting a (large) number of logs, we already have another ticket.

Stack trace


Stack trace:
java.lang.IndexOutOfBoundsException: Index 3094 out of bounds for length 4
at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266)
at java.util.Objects.checkIndex(Objects.java:359)
at java.util.ArrayList.get(ArrayList.java:434)
at de.westnordost.streetcomplete.screens.about.LogsAdapter$messages$result$1.areContentsTheSame(Unknown Source:16)
at androidx.recyclerview.widget.DiffUtil$DiffResult.findMatchingItems(Unknown Source:31)
at androidx.recyclerview.widget.DiffUtil$DiffResult.<init>(Unknown Source:35)
at androidx.recyclerview.widget.DiffUtil.calculateDiff(SourceFile:0)
at androidx.recyclerview.widget.DiffUtil.calculateDiff(SourceFile:0)
at de.westnordost.streetcomplete.screens.about.LogsAdapter.setMessages(Unknown Source:10)
at de.westnordost.streetcomplete.screens.about.LogsFragment$onViewCreated$1.emit(SourceFile:0)
at de.westnordost.streetcomplete.screens.about.LogsFragment$onViewCreated$1.emit(SourceFile:0)
at de.westnordost.streetcomplete.util.ktx.FragmentKt$observe$1$1$1.emit(Unknown Source:2)
at kotlinx.coroutines.flow.SharedFlowImpl.collect$suspendImpl(Unknown Source:186)
at kotlinx.coroutines.flow.SharedFlowImpl$collect$1.invokeSuspend(Unknown Source:12)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11)
at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8893)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@e6644fe, Dispatchers.Main.immediate]
riQQ commented 2 months ago

See #5561 for log sharing.