From: AsamK Date: Mon, 30 Aug 2021 19:07:24 +0000 (+0200) Subject: Fix handling incoming contacts sync message X-Git-Tag: v0.9.0~27 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/0d0978011dac492ac1df3d2440ea0689b1e7f3e3 Fix handling incoming contacts sync message --- diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/AttachmentHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/AttachmentHelper.java index d3931955..449a575e 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/AttachmentHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/AttachmentHelper.java @@ -88,9 +88,9 @@ public class AttachmentHelper { SignalServiceAttachment attachment, AttachmentHandler consumer ) throws IOException { if (attachment.isStream()) { - try (var input = attachment.asStream().getInputStream()) { - consumer.handle(input); - } + var input = attachment.asStream().getInputStream(); + // don't close input stream here, it might be reused later (e.g. with contact sync messages ...) + consumer.handle(input); return; } diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/SyncHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/SyncHelper.java index 3cc76b28..bcdf6ab1 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/SyncHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/SyncHelper.java @@ -215,7 +215,7 @@ public class SyncHelper { sendHelper.sendSyncMessage(SignalServiceSyncMessage.forVerified(verifiedMessage)); } - public void handleSyncDeviceContacts(final InputStream input) { + public void handleSyncDeviceContacts(final InputStream input) throws IOException { final var s = new DeviceContactsInputStream(input); DeviceContact c; while (true) { @@ -226,8 +226,7 @@ public class SyncHelper { logger.warn("Sync contacts contained invalid contact, ignoring: {}", e.getMessage()); continue; } else { - logger.warn("Failed to read sync contacts", e); - break; + throw e; } } if (c == null) {