From: AsamK Date: Thu, 12 Sep 2024 21:09:20 +0000 (+0200) Subject: Fix truncating cdsi table X-Git-Tag: v0.13.7~6 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/c6e93126fa70334caba38ebd87e35cd0162bb621 Fix truncating cdsi table Fixes #1587 --- diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/RecipientHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/RecipientHelper.java index e003450b..24b3eb5f 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/RecipientHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/RecipientHelper.java @@ -14,6 +14,7 @@ import org.whispersystems.signalservice.api.push.ServiceId; import org.whispersystems.signalservice.api.push.ServiceId.ACI; import org.whispersystems.signalservice.api.push.ServiceId.PNI; import org.whispersystems.signalservice.api.push.SignalServiceAddress; +import org.whispersystems.signalservice.api.push.exceptions.CdsiInvalidArgumentException; import org.whispersystems.signalservice.api.push.exceptions.CdsiInvalidTokenException; import org.whispersystems.signalservice.api.services.CdsiV2Service; @@ -254,7 +255,7 @@ public class RecipientHelper { account.setLastRecipientsRefresh(System.currentTimeMillis()); } }); - } catch (CdsiInvalidTokenException e) { + } catch (CdsiInvalidTokenException | CdsiInvalidArgumentException e) { account.setCdsiToken(null); account.getCdsiStore().clearAll(); throw e; diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/CdsiStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/CdsiStore.java index fd0846e9..1170e651 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/CdsiStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/CdsiStore.java @@ -156,7 +156,7 @@ public class CdsiStore { public void clearAll() { final var sql = ( """ - TRUNCATE %s + DELETE FROM %s """ ).formatted(TABLE_CDSI); try (final var connection = database.getConnection()) {