diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/BackupVerifier.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/BackupVerifier.kt index e1e917db8a..dc87c93667 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/BackupVerifier.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/BackupVerifier.kt @@ -15,6 +15,7 @@ object BackupVerifier { private val TAG = Log.tag(BackupVerifier::class.java) @JvmStatic + @Throws(IOException::class) fun verifyFile(cipherStream: InputStream, passphrase: String, expectedCount: Long): Boolean { val inputStream = BackupRecordInputStream(cipherStream, passphrase) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/LocalBackupJobApi29.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/LocalBackupJobApi29.java index bbd4b0e2d6..9ac0d1b355 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/LocalBackupJobApi29.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/LocalBackupJobApi29.java @@ -197,7 +197,12 @@ public final class LocalBackupJobApi29 extends BaseJob { ThreadUtil.sleep(WAIT_FOR_SCOPED_STORAGE[attempts]); try (InputStream cipherStream = context.getContentResolver().openInputStream(temporaryFile.getUri())) { - valid = BackupVerifier.verifyFile(cipherStream, backupPassword, finishedEvent.getCount()); + try { + valid = BackupVerifier.verifyFile(cipherStream, backupPassword, finishedEvent.getCount()); + } catch (IOException e) { + Log.w(TAG, "Unable to verify backup", e); + valid = false; + } } catch (IOException e) { attempts++; Log.w(TAG, "Unable to find backup file, attempt: " + attempts + "/" + MAX_STORAGE_ATTEMPTS);