Dbrant has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/277809

Change subject: Always make sure to close Cursors.
......................................................................

Always make sure to close Cursors.

Change-Id: I8350cade4550adb4b4afb6be5e2fe61037f2e335
---
M app/src/main/java/org/wikipedia/database/http/HttpRowDao.java
M 
app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
M app/src/main/java/org/wikipedia/page/gallery/MediaDownloadReceiver.java
3 files changed, 30 insertions(+), 14 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/09/277809/1

diff --git a/app/src/main/java/org/wikipedia/database/http/HttpRowDao.java 
b/app/src/main/java/org/wikipedia/database/http/HttpRowDao.java
index d21fb70..d8b2cd4 100644
--- a/app/src/main/java/org/wikipedia/database/http/HttpRowDao.java
+++ b/app/src/main/java/org/wikipedia/database/http/HttpRowDao.java
@@ -143,7 +143,11 @@
                 + UserOptionDatabaseTable.Col.HTTP.transactionId() + " == " + 
DefaultAsyncRow.NO_TRANSACTION_ID;
         String sortOrder = null;
         Cursor cursor = client.select(selection, selectionArgs, sortOrder);
-        return cursorToCollection(cursor);
+        try {
+            return cursorToCollection(cursor);
+        } finally {
+            cursor.close();
+        }
     }
 
     @NonNull private Collection<T> cursorToCollection(@NonNull Cursor cursor) {
@@ -172,7 +176,11 @@
         String selection = client.getPrimaryKeySelection(item, selectionArgs);
         String sortOrder = null;
         Cursor cursor = client.select(selection, selectionArgs, sortOrder);
-        return cursor.moveToNext() ? client.fromCursor(cursor) : null;
+        try {
+            return cursor.moveToNext() ? client.fromCursor(cursor) : null;
+        } finally {
+            cursor.close();
+        }
     }
 
     private synchronized void removeItem(@NonNull T item) {
diff --git 
a/app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
 
b/app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
index ccea955..7fd37e5 100644
--- 
a/app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
+++ 
b/app/src/main/java/org/wikipedia/page/bottomcontent/MainPageReadMoreTopicTask.java
@@ -23,12 +23,16 @@
     @Override
     public PageTitle performTask() throws Throwable {
         Cursor c = getInterestedHistoryEntry();
-        if (c.getCount() > 0) {
-            c.moveToFirst();
-            final HistoryEntry historyEntry = 
HistoryEntry.DATABASE_TABLE.fromCursor(c);
-            return historyEntry.getTitle();
+        try {
+            if (c.getCount() > 0) {
+                c.moveToFirst();
+                final HistoryEntry historyEntry = 
HistoryEntry.DATABASE_TABLE.fromCursor(c);
+                return historyEntry.getTitle();
+            }
+            return null;
+        } finally {
+            c.close();
         }
-        return null;
     }
 
     private android.database.Cursor getInterestedHistoryEntry() {
diff --git 
a/app/src/main/java/org/wikipedia/page/gallery/MediaDownloadReceiver.java 
b/app/src/main/java/org/wikipedia/page/gallery/MediaDownloadReceiver.java
index 9d2bc6c..fb26654 100644
--- a/app/src/main/java/org/wikipedia/page/gallery/MediaDownloadReceiver.java
+++ b/app/src/main/java/org/wikipedia/page/gallery/MediaDownloadReceiver.java
@@ -56,14 +56,18 @@
             DownloadManager.Query query = new DownloadManager.Query();
             query.setFilterById(downloadId);
             Cursor c = downloadManager.query(query);
-            if (c.moveToFirst()) {
-                int statusIndex = 
c.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS);
-                int pathIndex = 
c.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_FILENAME);
-                int mimeIndex = 
c.getColumnIndexOrThrow(DownloadManager.COLUMN_MEDIA_TYPE);
-                if (DownloadManager.STATUS_SUCCESSFUL == 
c.getInt(statusIndex)) {
-                    notifyContentResolver(c.getString(pathIndex), 
c.getString(mimeIndex));
-                    FeedbackUtil.showMessage(activity, 
R.string.gallery_save_success);
+            try {
+                if (c.moveToFirst()) {
+                    int statusIndex = 
c.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS);
+                    int pathIndex = 
c.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_FILENAME);
+                    int mimeIndex = 
c.getColumnIndexOrThrow(DownloadManager.COLUMN_MEDIA_TYPE);
+                    if (DownloadManager.STATUS_SUCCESSFUL == 
c.getInt(statusIndex)) {
+                        notifyContentResolver(c.getString(pathIndex), 
c.getString(mimeIndex));
+                        FeedbackUtil.showMessage(activity, 
R.string.gallery_save_success);
+                    }
                 }
+            } finally {
+                c.close();
             }
         }
     }

-- 
To view, visit https://gerrit.wikimedia.org/r/277809
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8350cade4550adb4b4afb6be5e2fe61037f2e335
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to