Fix cursor leak
Change-Id: Ibd0e1f0c6d8a2582dedc1047476c810a573ea111
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index f0aa557..bed4043 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1850,20 +1850,28 @@
private int lookupBookmark(String title, String url) {
final ContentResolver cr = getActivity().getContentResolver();
-
- Cursor cursor = cr.query(BrowserContract.Bookmarks.CONTENT_URI,
- BookmarksLoader.PROJECTION,
- "title = ? OR url = ?",
- new String[] {
+ int count = 0;
+ Cursor cursor = null;
+ try {
+ cursor = cr.query(BrowserContract.Bookmarks.CONTENT_URI,
+ BookmarksLoader.PROJECTION,
+ "title = ? OR url = ?",
+ new String[] {
title, url
- },
- null);
+ },
+ null);
- if (cursor == null) {
- return 0;
+ if (cursor != null)
+ count = cursor.getCount();
+
+ } catch (IllegalStateException e) {
+ Log.e(LOGTAG, "lookupBookmark ", e);
+ } finally {
+ if (null != cursor) {
+ cursor.close();
+ }
}
-
- return cursor.getCount();
+ return count;
}
private void resetMenuItems(Menu menu) {