]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/Manager.java
use java7's nio api to get more detailed error messages
[signal-cli] / src / main / java / org / asamk / signal / Manager.java
index ee5aeeb36b715186478c665f3c88705a13c0892c..d329990dda87ed42ee6644962a8ea650f8bc95d9 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;
             }
@@ -1321,8 +1325,11 @@ class Manager implements Signal {
                 output.close();
             }
             input.close();
-            if (!tmpFile.delete()) {
-                System.err.println("Failed to delete temp file: " + tmpFile);
+            try {
+                Files.delete(tmpFile.toPath());
+            } catch(Exception e) {
+                System.out.println("Failed to delete temp file: " + tmpFile);
+                e.printStackTrace();
             }
         }
         return outputFile;
@@ -1368,13 +1375,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();