Crash on discarding a snippet |
|||||||
Issue descriptionChrome consistently crashes when I try to discard a snippet. This persists through clearing and re-fetching the snippets. Stack trace: 05-10 14:01:53.376 1967 1967 E AndroidRuntime: FATAL EXCEPTION: main 05-10 14:01:53.376 1967 1967 E AndroidRuntime: Process: com.google.android.apps.chrome, PID: 1967 05-10 14:01:53.376 1967 1967 E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: length=12; index=-1 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at java.util.ArrayList.get(ArrayList.java:310) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at org.chromium.chrome.browser.ntp.cards.NewTabPageAdapter.getItemViewType(NewTabPageAdapter.java:139) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at org.chromium.chrome.browser.ntp.snippets.SnippetItemDecoration.shouldPlaceSeparator(SnippetItemDecoration.java:69) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at org.chromium.chrome.browser.ntp.snippets.SnippetItemDecoration.getItemOffsets(SnippetItemDecoration.java:34) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.support.v7.widget.RecyclerView.getItemDecorInsetsForChild(RecyclerView.java:3885) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.support.v7.widget.LinearLayoutManager.a(LinearLayoutManager.java:24441) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.support.v7.widget.LinearLayoutManager.a(LinearLayoutManager.java:574) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.support.v7.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:2954) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2879) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3265) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.View.layout(View.java:16636) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5437) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.View.layout(View.java:16636) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5437) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at org.chromium.chrome.browser.compositor.CompositorViewHolder.onLayout(CompositorViewHolder.java:602) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.View.layout(View.java:16636) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5437) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1495) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.View.layout(View.java:16636) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5437) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.View.layout(View.java:16636) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5437) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.View.layout(View.java:16636) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5437) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.View.layout(View.java:16636) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5437) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1495) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.View.layout(View.java:16636) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5437) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:273) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2678) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.View.layout(View.java:16636) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:5437) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2171) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1931) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6013) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:670) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:606) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:739) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95) 05-10 14:01:53.376 1967 1967 E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
,
May 10 2016
I'd be interested in finding out what that view is, as everything in the RecyclerView should also be in the Adapter.
,
May 10 2016
That must be the view being dismissed. We remove it from the adapter, then call NotifyItemRemoved, which causes a relayout, which calls the Decorator.
,
May 11 2016
Issue 610845 has been merged into this issue.
,
May 11 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e00cf466b30ddf9dce47a809aab91251eb76fa93 commit e00cf466b30ddf9dce47a809aab91251eb76fa93 Author: dgn <dgn@chromium.org> Date: Wed May 11 09:25:53 2016 [NTP Snippets] Fix crash on snippet dismiss BUG= 610665 Review-Url: https://codereview.chromium.org/1961323003 Cr-Commit-Position: refs/heads/master@{#392884} [modify] https://crrev.com/e00cf466b30ddf9dce47a809aab91251eb76fa93/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetItemDecoration.java
,
May 11 2016
,
Jul 1 2016
,
Jul 1 2016
,
Jul 1 2016
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by bauerb@chromium.org
, May 10 2016