Fenix: IndexOutOfBoundsException java.util.ArrayList mozilla.components.browser.tabstray.TabsAdapter

Created on 2 Sep 2020  ·  5Comments  ·  Source: mozilla-mobile/fenix

May already be fixed by 81, but filing to keep track of here. Maybe the bump in numbers is due to Migration.

https://sentry.prod.mozaws.net/operations/firefox/issues/9491943/

A handful of crashes on Release.

IndexOutOfBoundsException
Index: 3, Size: 3
Java.util.ArrayList in get at line
mozilla.components.browser.tabstray.TabsAdapter in onBindViewHolder

Seeing this in Release 80.1.2, but not in 81

  • Android device: ?
  • Fenix version: 80.1.2 Release
a11y crash uplift 🐞 bug

All 5 comments

I believe I got the same crash.

a884fe82-a20f-4f86-8521-b71175773085
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1

* Socorro: https://crash-stats.mozilla.org/report/index/bp-430b377c-2f61-4c5b-a36f-929880200902

java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.get(ArrayList.java:437)
at mozilla.components.browser.tabstray.TabsAdapter.onBindViewHolder(TabsAdapter.kt:3)
at org.mozilla.fenix.tabtray.FenixTabsAdapter.onBindViewHolder(FenixTabsAdapter.kt:7)
at org.mozilla.fenix.tabtray.FenixTabsAdapter.onBindViewHolder(FenixTabsAdapter.kt:5)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:8)
at androidx.recyclerview.widget.ConcatAdapterController.onBindViewHolder(ConcatAdapterController.java:4)
at androidx.recyclerview.widget.ConcatAdapter.onBindViewHolder(ConcatAdapter.java:1)
at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:1)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:8)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:146)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:1)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:8)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:12)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:120)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:12)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:15)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:2)
at android.view.View.layout(View.java:20699)
at android.view.ViewGroup.layout(ViewGroup.java:6198)
at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:12)
at android.view.View.layout(View.java:20699)
at android.view.ViewGroup.layout(ViewGroup.java:6198)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:54)
at com.google.android.material.bottomsheet.BottomSheetBehavior.onLayoutChild(BottomSheetBehavior.java:22)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:7)
at android.view.View.layout(View.java:20699)
at android.view.ViewGroup.layout(ViewGroup.java:6198)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:20699)
at android.view.ViewGroup.layout(ViewGroup.java:6198)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1656)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1565)
at android.view.View.layout(View.java:20699)
at android.view.ViewGroup.layout(ViewGroup.java:6198)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:757)
at android.view.View.layout(View.java:20699)
at android.view.ViewGroup.layout(ViewGroup.java:6198)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2876)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2393)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1535)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7405)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1044)
at android.view.Choreographer.doCallbacks(Choreographer.java:839)
at android.view.Choreographer.doFrame(Choreographer.java:774)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1030)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6864)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

Nightly 200902 06:01 (Build #2015761523)
AC: 57.0.0, c84cf8e77
GV: 82.0a1-20200831091558
AS: 61.0.13

Device: Xiaomi Redmi Note 8
Additional information: TalkBack is enabled.

Sorry for the formatting, I'm on mobile and with TalkBack on

The tabs tray is unusable, the only way to change tabs is via the gesture on the toolbar, and closing them requires deleting browsing data.

Probably related to "Additional information: TalkBack is enabled"

We should try to get a fix in because the tabs tray is unusable for TalkBack users

Can repro crash with TalkBack on

Was this page helpful?
0 / 5 - 0 ratings