From 7bfd5cccbb90defbcfca019b95fdb25cb5fb06e6 Mon Sep 17 00:00:00 2001 From: Tony Rankin Date: Wed, 22 Apr 2015 16:11:40 -0700 Subject: [PATCH 1/3] Catching unknown URL exceptions. --- .../org/wordpress/android/util/ImageUtils.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java b/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java index fdba9fe5aad7..2e8e96fc312f 100644 --- a/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java +++ b/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java @@ -18,6 +18,7 @@ import android.os.AsyncTask; import android.provider.MediaStore; import android.text.TextUtils; +import android.util.Log; import android.widget.ImageView; import org.apache.http.HttpEntity; @@ -405,13 +406,17 @@ public static byte[] createThumbnailFromUri(Context context, String filePath = null; if (imageUri.toString().contains("content:")) { String[] projection = new String[] { MediaStore.Images.Media.DATA }; - Cursor cur = context.getContentResolver().query(imageUri, projection, null, null, null); - if (cur != null) { - if (cur.moveToFirst()) { - int dataColumn = cur.getColumnIndex(MediaStore.Images.Media.DATA); - filePath = cur.getString(dataColumn); + try { + Cursor cur = context.getContentResolver().query(imageUri, projection, null, null, null); + if (cur != null) { + if (cur.moveToFirst()) { + int dataColumn = cur.getColumnIndex(MediaStore.Images.Media.DATA); + filePath = cur.getString(dataColumn); + } + cur.close(); } - cur.close(); + } catch (IllegalStateException stateException) { + Log.d(ImageUtils.class.getName(), "IllegalStateException querying content:" + imageUri); } } From 44baece35bd338beb349afe2db24ecdbc3d3e650 Mon Sep 17 00:00:00 2001 From: Tony Rankin Date: Wed, 22 Apr 2015 17:23:17 -0700 Subject: [PATCH 2/3] Making sure Cursor is closed if exception gets thrown. --- .../org/wordpress/android/util/ImageUtils.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java b/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java index 2e8e96fc312f..23bd2cdb3fdc 100644 --- a/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java +++ b/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java @@ -406,17 +406,17 @@ public static byte[] createThumbnailFromUri(Context context, String filePath = null; if (imageUri.toString().contains("content:")) { String[] projection = new String[] { MediaStore.Images.Media.DATA }; + Cursor cur = null; try { - Cursor cur = context.getContentResolver().query(imageUri, projection, null, null, null); - if (cur != null) { - if (cur.moveToFirst()) { - int dataColumn = cur.getColumnIndex(MediaStore.Images.Media.DATA); - filePath = cur.getString(dataColumn); - } - cur.close(); + cur = context.getContentResolver().query(imageUri, projection, null, null, null); + if (cur != null && cur.moveToFirst()) { + int dataColumn = cur.getColumnIndex(MediaStore.Images.Media.DATA); + filePath = cur.getString(dataColumn); } } catch (IllegalStateException stateException) { Log.d(ImageUtils.class.getName(), "IllegalStateException querying content:" + imageUri); + } finally { + SqlUtils.closeCursor(cur); } } From a2216e5d4929018263e8bafc33e9ef1f784b5f47 Mon Sep 17 00:00:00 2001 From: Tony Rankin Date: Wed, 22 Apr 2015 17:36:42 -0700 Subject: [PATCH 3/3] Catching other unknown URL exception. --- .../java/org/wordpress/android/util/ImageUtils.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java b/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java index 23bd2cdb3fdc..69e1f13fd6d1 100644 --- a/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java +++ b/WordPressUtils/src/main/java/org/wordpress/android/util/ImageUtils.java @@ -42,13 +42,17 @@ public static int[] getImageSize(Uri uri, Context context){ if (uri.toString().contains("content:")) { String[] projection = new String[] { MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA }; - Cursor cur = context.getContentResolver().query(uri, projection, null, null, null); - if (cur != null) { - if (cur.moveToFirst()) { + Cursor cur = null; + try { + cur = context.getContentResolver().query(uri, projection, null, null, null); + if (cur != null && cur.moveToFirst()) { int dataColumn = cur.getColumnIndex(MediaStore.Images.Media.DATA); path = cur.getString(dataColumn); } - cur.close(); + } catch (IllegalStateException stateException) { + Log.d(ImageUtils.class.getName(), "IllegalStateException querying content:" + uri); + } finally { + SqlUtils.closeCursor(cur); } }