From ad6d60ad25f9eecc929a47cad76b42c8ef6b991a Mon Sep 17 00:00:00 2001 From: Steffen Siebert Date: Fri, 14 Jan 2011 19:55:45 +0100 Subject: [PATCH] FIXED: Some database cursors weren't closed if the query doesn't return data. --- src/org/geometerplus/android/fbreader/SQLiteBooksDatabase.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/org/geometerplus/android/fbreader/SQLiteBooksDatabase.java b/src/org/geometerplus/android/fbreader/SQLiteBooksDatabase.java index e6dbfda03..5dfffe044 100644 --- a/src/org/geometerplus/android/fbreader/SQLiteBooksDatabase.java +++ b/src/org/geometerplus/android/fbreader/SQLiteBooksDatabase.java @@ -344,6 +344,7 @@ public final class SQLiteBooksDatabase extends BooksDatabase { protected List loadAuthors(long bookId) { final Cursor cursor = myDatabase.rawQuery("SELECT Authors.name,Authors.sort_key FROM BookAuthor INNER JOIN Authors ON Authors.author_id = BookAuthor.author_id WHERE BookAuthor.book_id = ?", new String[] { "" + bookId }); if (!cursor.moveToNext()) { + cursor.close(); return null; } final ArrayList list = new ArrayList(); @@ -435,6 +436,7 @@ public final class SQLiteBooksDatabase extends BooksDatabase { protected List loadTags(long bookId) { final Cursor cursor = myDatabase.rawQuery("SELECT Tags.tag_id FROM BookTag INNER JOIN Tags ON Tags.tag_id = BookTag.tag_id WHERE BookTag.book_id = ?", new String[] { "" + bookId }); if (!cursor.moveToNext()) { + cursor.close(); return null; } ArrayList list = new ArrayList();