catch cursor window allocation exception

This commit is contained in:
Christian Schneppe 2018-11-23 14:15:26 +01:00
parent 9b833d0335
commit 5b73ebe9d7

View file

@ -664,17 +664,23 @@ public class DatabaseBackend extends SQLiteOpenHelper {
db.insert(RESOLVER_RESULTS_TABLENAME, null, contentValues);
}
public Resolver.Result findResolverResult(String domain) {
public synchronized Resolver.Result findResolverResult(String domain) {
SQLiteDatabase db = this.getReadableDatabase();
String where = Resolver.Result.DOMAIN + "=?";
String[] whereArgs = {domain};
final Cursor cursor = db.query(RESOLVER_RESULTS_TABLENAME, null, where, whereArgs, null, null, null);
Resolver.Result result = null;
if (cursor != null) {
if (cursor.moveToFirst()) {
result = Resolver.Result.fromCursor(cursor);
try {
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;
}