From a7dbe9a580b9d0faa93e023398a83b011729c21a Mon Sep 17 00:00:00 2001 From: Yepang Liu Date: Sun, 9 Oct 2016 14:54:09 +0800 Subject: [PATCH 1/8] Close the database cursor in MediaUtils Now the cursor is closed in the getLastRecordedVideoUri() method. --- .../src/main/java/org/wordpress/android/util/MediaUtils.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/MediaUtils.java b/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/MediaUtils.java index a96dadc7493e..58ac56007ff4 100644 --- a/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/MediaUtils.java +++ b/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/MediaUtils.java @@ -112,8 +112,10 @@ public static Uri getLastRecordedVideoUri(Activity activity) { CursorLoader loader = new CursorLoader(activity, contentUri, proj, null, null, sortOrder); Cursor cursor = loader.loadInBackground(); cursor.moveToFirst(); + long value = cursor.getLong(0); + cursor.close(); - return Uri.parse(contentUri.toString() + "/" + cursor.getLong(0)); + return Uri.parse(contentUri.toString() + "/" + value); } /** From 343f2fd2860311963fb3815e6e9db4ae47bec357 Mon Sep 17 00:00:00 2001 From: Yepang Liu Date: Sun, 9 Oct 2016 15:01:36 +0800 Subject: [PATCH 2/8] Close cursors in PostUploadService I added code to closed the database cursors used in the uploadImage() and uploadVideo() methods. --- .../android/ui/posts/services/PostUploadService.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/services/PostUploadService.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/services/PostUploadService.java index 9b62c84b2bc7..ca24e62b887b 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/services/PostUploadService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/services/PostUploadService.java @@ -538,6 +538,9 @@ private String uploadImage(MediaFile mediaFile) { path = thumbData; mediaFile.setFilePath(imageFile.getPath()); } + if (cur != null && !cur.isClosed()) { + cur.close(); + } } else { // file is not in media library path = imageUri.toString().replace("file://", ""); imageFile = new File(path); @@ -706,6 +709,9 @@ private String uploadVideo(MediaFile mediaFile) { } } } + if (cur != null && !cur.isClosed()){ + cur.close(); + } } else { // file is not in media library String filePath = videoUri.toString().replace("file://", ""); mediaFile.setFilePath(filePath); From e5cb19a5e1710269cb8a866d215472e8b1586933 Mon Sep 17 00:00:00 2001 From: Yepang Liu Date: Sun, 9 Oct 2016 15:07:33 +0800 Subject: [PATCH 3/8] close cursor in SiteSettingsInterface Added code to close the database cursor used in getDefaultCategory() method. The closing code was put inside a finally block to make sure it always gets executed. --- .../android/ui/prefs/SiteSettingsInterface.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsInterface.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsInterface.java index 0dc980e2d0b8..04207ff35563 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsInterface.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsInterface.java @@ -152,9 +152,15 @@ public static String getDefaultCategory(Context context) { if (id != 0) { CategoryModel category = new CategoryModel(); Cursor cursor = SiteSettingsTable.getCategory(id); - if (cursor != null && cursor.moveToFirst()) { - category.deserializeFromDatabase(cursor); - return category.name; + try { + if (cursor != null && cursor.moveToFirst()) { + category.deserializeFromDatabase(cursor); + return category.name; + } + } finally { + if (cursor != null && !cursor.isClosed()) { + cursor.close(); + } } } From c9045e64c347de198976b721481d4a29d0afce37 Mon Sep 17 00:00:00 2001 From: Yepang Liu Date: Sun, 9 Oct 2016 15:10:36 +0800 Subject: [PATCH 4/8] close cursor in EditPostActivity Moved the cursor closing code outside the if block to make sure the cursor is closed even when it is empty (when cur.moveToFirst() returns false). --- .../java/org/wordpress/android/ui/posts/EditPostActivity.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java index dc8761fcc95d..f6ec03f94047 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java @@ -1527,6 +1527,8 @@ private String getPathFromContentUri(Uri imageUri) { if (cur != null && cur.moveToFirst()) { int dataColumn = cur.getColumnIndex(MediaStore.Images.Media.DATA); path = cur.getString(dataColumn); + } + if (cur != null && !cur.isClosed()) { cur.close(); } return path; From eeed7173b121e215080f4fb51cb0259efc49d291 Mon Sep 17 00:00:00 2001 From: Yepang Liu Date: Thu, 27 Oct 2016 09:49:34 +0800 Subject: [PATCH 5/8] use SqlUtils.closeCursor() to close db cursors --- .../src/main/java/org/wordpress/android/util/MediaUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/MediaUtils.java b/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/MediaUtils.java index 58ac56007ff4..963dd4b40d0e 100644 --- a/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/MediaUtils.java +++ b/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/MediaUtils.java @@ -113,7 +113,7 @@ public static Uri getLastRecordedVideoUri(Activity activity) { Cursor cursor = loader.loadInBackground(); cursor.moveToFirst(); long value = cursor.getLong(0); - cursor.close(); + SqlUtils.closeCursor(cursor); return Uri.parse(contentUri.toString() + "/" + value); } From 9c74c73eac2042ce7cb80be03e97bf1c41668d5c Mon Sep 17 00:00:00 2001 From: Yepang Liu Date: Thu, 27 Oct 2016 09:55:06 +0800 Subject: [PATCH 6/8] use SqlUtils.closeCursor() to close db cursors --- .../android/ui/posts/services/PostUploadService.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/services/PostUploadService.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/services/PostUploadService.java index ca24e62b887b..07c9cb996ba7 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/services/PostUploadService.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/services/PostUploadService.java @@ -41,6 +41,7 @@ import org.wordpress.android.util.DisplayUtils; import org.wordpress.android.util.ImageUtils; import org.wordpress.android.util.MediaUtils; +import org.wordpress.android.util.SqlUtils; import org.wordpress.android.util.StringUtils; import org.wordpress.android.util.SystemServiceFactory; import org.wordpress.android.util.WPMeShortlinks; @@ -538,9 +539,7 @@ private String uploadImage(MediaFile mediaFile) { path = thumbData; mediaFile.setFilePath(imageFile.getPath()); } - if (cur != null && !cur.isClosed()) { - cur.close(); - } + SqlUtils.closeCursor(cur); } else { // file is not in media library path = imageUri.toString().replace("file://", ""); imageFile = new File(path); @@ -709,9 +708,7 @@ private String uploadVideo(MediaFile mediaFile) { } } } - if (cur != null && !cur.isClosed()){ - cur.close(); - } + SqlUtils.closeCursor(cur); } else { // file is not in media library String filePath = videoUri.toString().replace("file://", ""); mediaFile.setFilePath(filePath); From 688a61e2136abe37805bcd0919b3cbbe9c341839 Mon Sep 17 00:00:00 2001 From: Yepang Liu Date: Thu, 27 Oct 2016 09:57:42 +0800 Subject: [PATCH 7/8] use SqlUtils.closeCursor() to close db cursors --- .../wordpress/android/ui/prefs/SiteSettingsInterface.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsInterface.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsInterface.java index 04207ff35563..b9c2f35bf9d2 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsInterface.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsInterface.java @@ -14,6 +14,7 @@ import org.wordpress.android.models.CategoryModel; import org.wordpress.android.models.SiteSettingsModel; import org.wordpress.android.util.LanguageUtils; +import org.wordpress.android.util.SqlUtils; import org.wordpress.android.util.StringUtils; import org.wordpress.android.util.WPPrefUtils; import org.xmlrpc.android.ApiHelper.Method; @@ -158,9 +159,7 @@ public static String getDefaultCategory(Context context) { return category.name; } } finally { - if (cursor != null && !cursor.isClosed()) { - cursor.close(); - } + SqlUtils.closeCursor(cursor); } } From f6a69213afbae67a1f01638739c12ac0b6183ca1 Mon Sep 17 00:00:00 2001 From: Yepang Liu Date: Thu, 27 Oct 2016 10:00:47 +0800 Subject: [PATCH 8/8] use SqlUtils.closeCursor() to close db cursors --- .../org/wordpress/android/ui/posts/EditPostActivity.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java index f6ec03f94047..45ec27d86978 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.java @@ -95,6 +95,7 @@ import org.wordpress.android.util.MediaUtils; import org.wordpress.android.util.NetworkUtils; import org.wordpress.android.util.PermissionUtils; +import org.wordpress.android.util.SqlUtils; import org.wordpress.android.util.StringUtils; import org.wordpress.android.util.ToastUtils; import org.wordpress.android.util.ToastUtils.Duration; @@ -1528,9 +1529,7 @@ private String getPathFromContentUri(Uri imageUri) { int dataColumn = cur.getColumnIndex(MediaStore.Images.Media.DATA); path = cur.getString(dataColumn); } - if (cur != null && !cur.isClosed()) { - cur.close(); - } + SqlUtils.closeCursor(cur); return path; }