From 8f884fdd5cf0e5523ea37330890f3d9c0d5d1980 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 13 Mar 2024 16:56:07 -0400 Subject: [PATCH] Fix potential crash when parsing PreKeySyncJobData. Honestly at this point I have no idea how this is happening. Maybe somehow getting old data that was empty but not null? A mystery for the ages. --- .../thoughtcrime/securesms/jobs/PreKeysSyncJob.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt index 4da9def707..1e222b937f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt @@ -295,10 +295,15 @@ class PreKeysSyncJob private constructor( class Factory : Job.Factory { override fun create(parameters: Parameters, serializedData: ByteArray?): PreKeysSyncJob { - return serializedData?.let { - val data = PreKeysSyncJobData.ADAPTER.decode(serializedData) - PreKeysSyncJob(parameters, data.forceRefreshRequested) - } ?: PreKeysSyncJob(parameters, forceRotationRequested = false) + return try { + serializedData?.let { + val data = PreKeysSyncJobData.ADAPTER.decode(serializedData) + PreKeysSyncJob(parameters, data.forceRefreshRequested) + } ?: PreKeysSyncJob(parameters, forceRotationRequested = false) + } catch (e: IOException) { + Log.w(TAG, "Error deserializing PreKeysSyncJob", e) + PreKeysSyncJob(parameters, forceRotationRequested = false) + } } } }