From 40da575ee74068f5961246f969ff7b08a8a61cc5 Mon Sep 17 00:00:00 2001 From: Raphael Kim Date: Wed, 11 Nov 2020 23:41:38 -0800 Subject: [PATCH] catch uncaught sqlite exception to prevent crash --- .../cache/normalized/sql/SqlNormalizedCache.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/aws-android-sdk-appsync/src/main/java/com/apollographql/apollo/cache/normalized/sql/SqlNormalizedCache.java b/aws-android-sdk-appsync/src/main/java/com/apollographql/apollo/cache/normalized/sql/SqlNormalizedCache.java index b500b705..c01a5cb2 100644 --- a/aws-android-sdk-appsync/src/main/java/com/apollographql/apollo/cache/normalized/sql/SqlNormalizedCache.java +++ b/aws-android-sdk-appsync/src/main/java/com/apollographql/apollo/cache/normalized/sql/SqlNormalizedCache.java @@ -9,6 +9,7 @@ import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteStatement; @@ -205,20 +206,16 @@ Optional selectRecordForKey(String key) { Cursor cursor = database.query(AppSyncSqlHelper.TABLE_RECORDS, allColumns, AppSyncSqlHelper.COLUMN_KEY + " = ?", new String[]{key}, null, null, null); - if (cursor == null || !cursor.moveToFirst()) { - if (cursor != null && !cursor.isClosed()) { - cursor.close(); - } - return Optional.absent(); - } - try { + if (cursor == null || !cursor.moveToFirst()) { + return Optional.absent(); + } Record rec = cursorToRecord(cursor); return Optional.of(rec); - } catch (IOException exception) { + } catch (IOException | SQLiteException exception) { return Optional.absent(); } finally { - if (!cursor.isClosed()) { + if (cursor != null && !cursor.isClosed()) { cursor.close(); } }