New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 610665 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Not on Chrome anymore
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

Crash on discarding a snippet

Project Member Reported by treib@chromium.org, May 10 2016

Issue description

Chrome 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)

 

Comment 1 by bauerb@chromium.org, May 10 2016

Labels: -Restrict-View-Google OS-Android
Looks like SnippetItemDecoration.getItemOffsets gets passed a View it doesn't know about, so the position it gets back is -1 (NO_POSITION)?
Owner: dgn@chromium.org
I'd be interested in finding out what that view is, as everything in the RecyclerView should also be in the Adapter.

Comment 3 by dgn@chromium.org, May 10 2016

Labels: zine-mr-iter-14
Status: Started (was: Available)
That must be the view being dismissed. We remove it from the adapter, then call NotifyItemRemoved, which causes a relayout, which calls the Decorator. 

Comment 4 by nepper@chromium.org, May 11 2016

Issue 610845 has been merged into this issue.
Project Member

Comment 5 by bugdroid1@chromium.org, May 11 2016

Comment 6 by dgn@chromium.org, May 11 2016

Status: Fixed (was: Started)

Comment 7 by fi...@chromium.org, Jul 1 2016

Labels: zine-mr-MVP

Comment 8 by finkm@google.com, Jul 1 2016

Labels: -zine-mr-mvp

Comment 9 by fi...@chromium.org, Jul 1 2016

Labels: zine-mr-MVP

Sign in to add a comment