Bug 765486 - Protect isBookmark() against NPE. r=lucasr a=lsblakk
--- a/mobile/android/base/db/LocalBrowserDB.java
+++ b/mobile/android/base/db/LocalBrowserDB.java
@@ -372,26 +372,30 @@ public class LocalBrowserDB implements B
// Cache result for future queries
mReadingListItemsExist = (count > 0);
return mReadingListItemsExist;
}
public boolean isBookmark(ContentResolver cr, String uri) {
// This method is about normal bookmarks, not the Reading List
- Cursor cursor = cr.query(mBookmarksUriWithProfile,
- new String[] { Bookmarks._ID },
- Bookmarks.URL + " = ? AND " +
- Bookmarks.PARENT + " != ?",
- new String[] { uri,
- String.valueOf(Bookmarks.FIXED_READING_LIST_ID) },
- Bookmarks.URL);
-
- int count = cursor.getCount();
- cursor.close();
+ int count = 0;
+ try {
+ Cursor c = cr.query(mBookmarksUriWithProfile,
+ new String[] { Bookmarks._ID },
+ Bookmarks.URL + " = ? AND " +
+ Bookmarks.PARENT + " != ?",
+ new String[] { uri,
+ String.valueOf(Bookmarks.FIXED_READING_LIST_ID) },
+ Bookmarks.URL);
+ count = c.getCount();
+ c.close();
+ } catch (NullPointerException e) {
+ Log.e(LOGTAG, "NullPointerException in isBookmark for " + uri);
+ }
return (count == 1);
}
public String getUrlForKeyword(ContentResolver cr, String keyword) {
Cursor cursor = cr.query(mBookmarksUriWithProfile,
new String[] { Bookmarks.URL },
Bookmarks.KEYWORD + " = ?",