From e8da8b12c3ee0449ed60f7c28ce983c3ea2b4749 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Tue, 8 Oct 2019 12:45:23 -0400 Subject: Handle null assetFd like a FNF Bug: 140961740 Test: TODO We already catch an FNF and attempt to open the file as an InputStream. Do the same if null is returned. I haven't figured out a way to make assetFd set to null and yet opening an InputStream succeeds, so this is untested. Change-Id: Iabd05db714bc693ead2dc8cc4c0b46fef9f33d5a --- graphics/java/android/graphics/ImageDecoder.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'graphics/java/android') diff --git a/graphics/java/android/graphics/ImageDecoder.java b/graphics/java/android/graphics/ImageDecoder.java index 6619dba159c2..e7b0e2899421 100644 --- a/graphics/java/android/graphics/ImageDecoder.java +++ b/graphics/java/android/graphics/ImageDecoder.java @@ -277,6 +277,10 @@ public final class ImageDecoder implements AutoCloseable { assetFd = mResolver.openAssetFileDescriptor(mUri, "r"); } } catch (FileNotFoundException e) { + // Handled below, along with the case where assetFd was set to null. + } + + if (assetFd == null) { // Some images cannot be opened as AssetFileDescriptors (e.g. // bmp, ico). Open them as InputStreams. InputStream is = mResolver.openInputStream(mUri); @@ -286,9 +290,7 @@ public final class ImageDecoder implements AutoCloseable { return createFromStream(is, true, preferAnimation, this); } - if (assetFd == null) { - throw new FileNotFoundException(mUri.toString()); - } + return createFromAssetFileDescriptor(assetFd, preferAnimation, this); } } -- cgit v1.2.3-59-g8ed1b