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

Issue 734992 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Email to this user bounced
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

NullPointerException when fetching a cached thumbnail

Project Member Reported by bauerb@chromium.org, Jun 20 2017

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)

 
Labels: M-61 zine-client
Issue 736032 has been merged into this issue.
Labels: ReleaseBlock-Stable
Project Member

Comment 4 by sheriffbot@chromium.org, Jul 3 2017

Labels: Fracas FoundIn-M-61
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
Project Member

Comment 5 by bugdroid1@chromium.org, 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

Project Member

Comment 6 by bugdroid1@chromium.org, 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

Comment 7 by galinap@google.com, Jul 12 2017

Status: Fixed (was: Assigned)

Sign in to add a comment