From: AsamK Date: Sun, 5 Sep 2021 14:06:13 +0000 (+0200) Subject: Prevent creation of RecipientAddress with UNKNOWN_UUID X-Git-Tag: v0.9.0~17 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/656ca6b5e4f5fe131f3477e39fcc20372655ad59 Prevent creation of RecipientAddress with UNKNOWN_UUID --- diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientAddress.java b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientAddress.java index 29e964b0..88877d83 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientAddress.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientAddress.java @@ -18,6 +18,7 @@ public class RecipientAddress { * @param e164 The phone number of the user, if available. */ public RecipientAddress(Optional uuid, Optional e164) { + uuid = uuid.isPresent() && uuid.get().equals(UuidUtil.UNKNOWN_UUID) ? Optional.empty() : uuid; if (!uuid.isPresent() && !e164.isPresent()) { throw new AssertionError("Must have either a UUID or E164 number!"); } @@ -31,13 +32,11 @@ public class RecipientAddress { } public RecipientAddress(SignalServiceAddress address) { - this.uuid = Optional.of(address.getUuid()); - this.e164 = Optional.ofNullable(address.getNumber().orNull()); + this(Optional.of(address.getUuid()), Optional.ofNullable(address.getNumber().orNull())); } public RecipientAddress(UUID uuid) { - this.uuid = Optional.of(uuid); - this.e164 = Optional.empty(); + this(Optional.of(uuid), Optional.empty()); } public Optional getNumber() { diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java index 86164d58..bace6a6b 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java @@ -308,7 +308,7 @@ public class RecipientStore implements RecipientResolver, ContactsStore, Profile final var byNumber = address.getNumber().isEmpty() ? Optional.empty() : findByNumberLocked(address.getNumber().get()); - final var byUuid = address.getUuid().isEmpty() || address.getUuid().get().equals(UuidUtil.UNKNOWN_UUID) + final var byUuid = address.getUuid().isEmpty() ? Optional.empty() : findByUuidLocked(address.getUuid().get());