From 40108d5276a972491f81661413fc5f7371fe366f Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Mon, 26 Oct 2015 12:33:45 -0700 Subject: [PATCH] Catch exception strangely thrown by system query from Sony device. Fixes #4309 // FREEBIE --- .../securesms/database/SmsMigrator.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/org/thoughtcrime/securesms/database/SmsMigrator.java b/src/org/thoughtcrime/securesms/database/SmsMigrator.java index 00840657eb..499219b9bf 100644 --- a/src/org/thoughtcrime/securesms/database/SmsMigrator.java +++ b/src/org/thoughtcrime/securesms/database/SmsMigrator.java @@ -19,6 +19,7 @@ package org.thoughtcrime.securesms.database; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteStatement; import android.net.Uri; import android.util.Log; @@ -33,6 +34,8 @@ import java.util.StringTokenizer; public class SmsMigrator { + private static final String TAG = SmsMigrator.class.getSimpleName(); + private static void addEncryptedStringToStatement(Context context, SQLiteStatement statement, Cursor cursor, MasterSecret masterSecret, int index, String key) @@ -169,8 +172,16 @@ public class SmsMigrator { Cursor cursor = null; try { - Uri uri = Uri.parse("content://sms/conversations/" + theirThreadId); - cursor = context.getContentResolver().query(uri, null, null, null, null); + Uri uri = Uri.parse("content://sms/conversations/" + theirThreadId); + + try { + cursor = context.getContentResolver().query(uri, null, null, null, null); + } catch (SQLiteException e) { + /// Work around for weird sony-specific (?) bug: #4309 + Log.w(TAG, e); + return; + } + SQLiteDatabase transaction = ourSmsDatabase.beginTransaction(); SQLiteStatement statement = ourSmsDatabase.createInsertStatement(transaction);