NullPointerException when fetching a cached thumbnail |
||||
Issue description
Steps to reproduce:
1) Download an image
2) Open a New Tab Page
3) Reload the NTP
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.drawable.Drawable.setCallback(android.graphics.drawable.Drawable$Callback)' on a null object reference
at android.graphics.drawable.LayerDrawable.<init>(LayerDrawable.java:139)
at android.graphics.drawable.TransitionDrawable.<init>(TransitionDrawable.java:97)
at android.graphics.drawable.TransitionDrawable.<init>(TransitionDrawable.java:79)
at org.chromium.chrome.browser.ntp.snippets.SnippetArticleViewHolder.fadeThumbnailIn(SnippetArticleViewHolder.java:478)
at org.chromium.chrome.browser.ntp.snippets.SnippetArticleViewHolder.access$600(SnippetArticleViewHolder.java:65)
at org.chromium.chrome.browser.ntp.snippets.SnippetArticleViewHolder$FetchImageCallback.onResult(SnippetArticleViewHolder.java:617)
at org.chromium.chrome.browser.ntp.snippets.SnippetArticleViewHolder$ThumbnailCallback.onThumbnailRetrieved(SnippetArticleViewHolder.java:653)
at org.chromium.chrome.browser.download.ui.ThumbnailProviderImpl.getThumbnail(ThumbnailProviderImpl.java:78)
at org.chromium.chrome.browser.ntp.snippets.SnippetArticleViewHolder.setDownloadThumbnail(SnippetArticleViewHolder.java:398)
at org.chromium.chrome.browser.ntp.snippets.SnippetArticleViewHolder.setThumbnail(SnippetArticleViewHolder.java:416)
at org.chromium.chrome.browser.ntp.snippets.SnippetArticleViewHolder.onBindViewHolder(SnippetArticleViewHolder.java:229)
at org.chromium.chrome.browser.ntp.cards.SuggestionsSection$SuggestionsList.onBindViewHolder(SuggestionsSection.java:137)
at org.chromium.chrome.browser.ntp.cards.InnerNode.onBindViewHolder(InnerNode.java:81)
at org.chromium.chrome.browser.ntp.cards.SuggestionsSection.onBindViewHolder(SuggestionsSection.java:296)
at org.chromium.chrome.browser.ntp.cards.InnerNode.onBindViewHolder(InnerNode.java:81)
at org.chromium.chrome.browser.ntp.cards.InnerNode.onBindViewHolder(InnerNode.java:81)
at org.chromium.chrome.browser.ntp.cards.NewTabPageAdapter.onBindViewHolder(NewTabPageAdapter.java:163)
at org.chromium.chrome.browser.ntp.cards.NewTabPageAdapter.onBindViewHolder(NewTabPageAdapter.java:36)
at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6100)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5282)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5158)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2061)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1445)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1408)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:580)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3379)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3188)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3632)
at org.chromium.chrome.browser.suggestions.SuggestionsRecyclerView.onLayout(SuggestionsRecyclerView.java:192)
at android.view.View.layout(View.java:17637)
,
Jul 3 2017
Issue 736032 has been merged into this issue.
,
Jul 3 2017
,
Jul 3 2017
Users experienced this crash on the following builds: Android Dev 61.0.3142.0 - 4.70 CPM, 142 reports, 79 clients (signature [Android Java Exception] java.lang.NullPointerException at org.chromium.chrome.browser.ntp.snippets.SnippetArticleViewHolder$FetchImageCallback.onResult(SnippetArticleViewHolder.java)) If this update was incorrect, please add "Fracas-Wrong" label to prevent future updates. - Go/Fracas
,
Jul 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/838e38955e7ae018e1bffa5fc1af39ad545cbbe9 commit 838e38955e7ae018e1bffa5fc1af39ad545cbbe9 Author: Galia Peycheva <galinap@google.com> Date: Mon Jul 03 17:38:02 2017 [Suggestions] Setting a placeholder when a downloaded image is fetched This CL sets a placeholder when we fetch a thumbnail for a downloaded image. If the thumbnail is cached, no placeholder is set - the thumbnail is directly set in the ImageView. Otherwise, the retrieved image is faded in. Bug: 734992 Change-Id: I29e4d810de00ec604edb0da5b8f571842c984f8b Reviewed-on: https://chromium-review.googlesource.com/558931 Commit-Queue: Galia Peycheva <galinap@google.com> Reviewed-by: Nicolas Dossou-Gbété <dgn@chromium.org> Cr-Commit-Position: refs/heads/master@{#484024} [modify] https://crrev.com/838e38955e7ae018e1bffa5fc1af39ad545cbbe9/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java
,
Jul 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/be3dba44cf8df0a7ac387372fad6e135939e5a21 commit be3dba44cf8df0a7ac387372fad6e135939e5a21 Author: Galia Peycheva <galinap@google.com> Date: Thu Jul 06 17:18:13 2017 [Suggestions] Use a promise to detect if download thumbnail is in cache When we fetch a thumbnail for downloaded images, we want to set a placeholder if there is no thumbnail for that image in the cache and when the thumbnail is fetched, replace the placeholder with it. Otherwise, we want to set the thumbnail immediately. This CL introduces a promise in DownloadThumbnailRequest which is fulfilled when the thumbnail is retrieved. This allows the SnippetArticleViewHolder to elegantly check whether the image fetch is synchronous or asynchronous (respectively whether we need to set a placeholder or not) and queue a callback if it is asynchronous. Bug: 734992 Change-Id: I732b81ff42df12195fb1904bafb51e56d33542d4 Reviewed-on: https://chromium-review.googlesource.com/558989 Commit-Queue: Galia Peycheva <galinap@google.com> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Bernhard Bauer <bauerb@chromium.org> Reviewed-by: Nicolas Dossou-Gbété <dgn@chromium.org> Cr-Commit-Position: refs/heads/master@{#484645} [modify] https://crrev.com/be3dba44cf8df0a7ac387372fad6e135939e5a21/base/android/java/src/org/chromium/base/Promise.java [modify] https://crrev.com/be3dba44cf8df0a7ac387372fad6e135939e5a21/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticleViewHolder.java [modify] https://crrev.com/be3dba44cf8df0a7ac387372fad6e135939e5a21/chrome/android/java/src/org/chromium/chrome/browser/suggestions/ImageFetcher.java [modify] https://crrev.com/be3dba44cf8df0a7ac387372fad6e135939e5a21/chrome/android/junit/src/org/chromium/chrome/browser/suggestions/ImageFetcherTest.java
,
Jul 12 2017
|
||||
►
Sign in to add a comment |
||||
Comment 1 by mvanouwe...@chromium.org
, Jun 20 2017