catch cursor window allocation exception

This commit is contained in:
Daniel Gultsch 2018-11-13 09:58:28 +01:00
parent 09f9baeeef
commit 6d67854086

View file

@ -647,17 +647,23 @@ public class DatabaseBackend extends SQLiteOpenHelper {
db.insert(RESOLVER_RESULTS_TABLENAME, null, contentValues); db.insert(RESOLVER_RESULTS_TABLENAME, null, contentValues);
} }
public Resolver.Result findResolverResult(String domain) { public synchronized Resolver.Result findResolverResult(String domain) {
SQLiteDatabase db = this.getReadableDatabase(); SQLiteDatabase db = this.getReadableDatabase();
String where = Resolver.Result.DOMAIN + "=?"; String where = Resolver.Result.DOMAIN + "=?";
String[] whereArgs = {domain}; String[] whereArgs = {domain};
final Cursor cursor = db.query(RESOLVER_RESULTS_TABLENAME, null, where, whereArgs, null, null, null); final Cursor cursor = db.query(RESOLVER_RESULTS_TABLENAME, null, where, whereArgs, null, null, null);
Resolver.Result result = null; Resolver.Result result = null;
if (cursor != null) { if (cursor != null) {
if (cursor.moveToFirst()) { try {
result = Resolver.Result.fromCursor(cursor); if (cursor.moveToFirst()) {
result = Resolver.Result.fromCursor(cursor);
}
} catch (Exception e ) {
Log.d(Config.LOGTAG,"unable to find cached resolver result in database "+e.getMessage());
return null;
} finally {
cursor.close();
} }
cursor.close();
} }
return result; return result;
} }