Bug 1352608 - Close a cursor after we're done with it r=eoger draft
authorGrigory Kruglov <gkruglov@mozilla.com>
Fri, 31 Mar 2017 20:22:06 -0400
changeset 554579 634c6f8cfc14cce8d15e2911d474086dc85c6db4
parent 554498 31810a9548fcede48be099fc9823fd2710616d64
child 622395 ae4c1696fedec9fce733f88a72fc8e2d93a3f42c
push id52000
push userbmo:gkruglov@mozilla.com
push dateSat, 01 Apr 2017 00:25:36 +0000
reviewerseoger
bugs1352608
milestone55.0a1
Bug 1352608 - Close a cursor after we're done with it r=eoger Removed "final" because "safeQuery" provides terrible developer ergonomics. MozReview-Commit-ID: 2F0XZnBM3Yv
mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/android/FennecTabsRepository.java
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/android/FennecTabsRepository.java
+++ b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/repositories/android/FennecTabsRepository.java
@@ -181,23 +181,28 @@ public class FennecTabsRepository extend
       };
 
       delegateQueue.execute(command);
     }
 
     private long getLocalClientLastModified() {
       final String localClientSelection = Clients.GUID + " IS NULL";
       final String[] localClientSelectionArgs = null;
+      Cursor cursor = null;
       try {
-        final Cursor cursor = clientsHelper.safeQuery(tabsProvider, ".fetchLocalClient()", null,
+        cursor = clientsHelper.safeQuery(tabsProvider, ".fetchLocalClient()", null,
                 localClientSelection, localClientSelectionArgs, null);
         cursor.moveToFirst();
         return RepoUtils.getLongFromCursor(cursor, Clients.LAST_MODIFIED);
       } catch (Exception e) {
         return 0;
+      } finally {
+        if (cursor != null) {
+          cursor.close();
+        }
       }
     }
 
     @Override
     public void fetch(final String[] guids,
                       final RepositorySessionFetchRecordsDelegate delegate) {
       // Bug 783692: Now that Bug 730039 has landed, we could implement this,
       // but it's not a priority since it's not used (yet).