]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/Manager.java
Update README.md
[signal-cli] / src / main / java / org / asamk / signal / Manager.java
index b16c8eaeb46166414b704aa621453c207ffa0d92..77647d271485df6201de5520ccdb62453c9780cb 100644 (file)
@@ -938,10 +938,14 @@ class Manager implements Signal {
                     }
                     break;
                 case REQUEST_INFO:
-                    try {
-                        sendUpdateGroupMessage(groupInfo.getGroupId(), source);
-                    } catch (IOException | EncapsulatedExceptions e) {
-                        e.printStackTrace();
+                    if (group != null) {
+                        try {
+                            sendUpdateGroupMessage(groupInfo.getGroupId(), source);
+                        } catch (IOException | EncapsulatedExceptions e) {
+                            e.printStackTrace();
+                        } catch (NotAGroupMemberException e) {
+                            // We have left this group, so don't send a group update message
+                        }
                     }
                     break;
             }
@@ -1320,6 +1324,7 @@ class Manager implements Signal {
             if (output != null) {
                 output.close();
             }
+            input.close();
             if (!tmpFile.delete()) {
                 System.err.println("Failed to delete temp file: " + tmpFile);
             }
@@ -1367,13 +1372,17 @@ class Manager implements Signal {
 
             if (groupsFile.exists() && groupsFile.length() > 0) {
                 FileInputStream contactsFileStream = new FileInputStream(groupsFile);
-                SignalServiceAttachmentStream attachmentStream = SignalServiceAttachment.newStreamBuilder()
-                        .withStream(contactsFileStream)
-                        .withContentType("application/octet-stream")
-                        .withLength(groupsFile.length())
-                        .build();
-
-                sendSyncMessage(SignalServiceSyncMessage.forGroups(attachmentStream));
+                try {
+                    SignalServiceAttachmentStream attachmentStream = SignalServiceAttachment.newStreamBuilder()
+                            .withStream(contactsFileStream)
+                            .withContentType("application/octet-stream")
+                            .withLength(groupsFile.length())
+                            .build();
+
+                    sendSyncMessage(SignalServiceSyncMessage.forGroups(attachmentStream));
+                } finally {
+                    contactsFileStream.close();
+                }
             }
         } finally {
             groupsFile.delete();