From: AsamK Date: Wed, 5 Apr 2023 09:25:53 +0000 (+0200) Subject: Fix issue with unknown identity serviceId X-Git-Tag: v0.11.8~1 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/542a3f36a4d3e3560dd00ac702f638671da10144?ds=inline Fix issue with unknown identity serviceId Fixes #1215 --- diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/AccountDatabase.java b/lib/src/main/java/org/asamk/signal/manager/storage/AccountDatabase.java index c08036be..a15b4aab 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/AccountDatabase.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/AccountDatabase.java @@ -14,6 +14,7 @@ import org.asamk.signal.manager.storage.sessions.SessionStore; import org.asamk.signal.manager.storage.stickers.StickerStore; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.whispersystems.signalservice.api.push.ServiceId; import java.io.File; import java.sql.Connection; @@ -22,7 +23,7 @@ import java.sql.SQLException; public class AccountDatabase extends Database { private final static Logger logger = LoggerFactory.getLogger(AccountDatabase.class); - private static final long DATABASE_VERSION = 12; + private static final long DATABASE_VERSION = 13; private AccountDatabase(final HikariDataSource dataSource) { super(logger, DATABASE_VERSION, dataSource); @@ -304,5 +305,28 @@ public class AccountDatabase extends Database { """); } } + if (oldVersion < 13) { + logger.debug("Updating database: Cleanup unknown service ids"); + { + final var sql = """ + DELETE FROM identity AS i + WHERE i.uuid = ? + """; + try (final var statement = connection.prepareStatement(sql)) { + statement.setBytes(1, ServiceId.UNKNOWN.toByteArray()); + statement.executeUpdate(); + } + } + { + final var sql = """ + DELETE FROM sender_key_shared AS i + WHERE i.uuid = ? + """; + try (final var statement = connection.prepareStatement(sql)) { + statement.setBytes(1, ServiceId.UNKNOWN.toByteArray()); + statement.executeUpdate(); + } + } + } } }