diff --git a/src/main/java/eu/siacs/conversations/http/HttpDownloadConnection.java b/src/main/java/eu/siacs/conversations/http/HttpDownloadConnection.java index e701d556d2bc66aa0b3af40579ff7668839522a1..67e29178d04f71df8fa0e9737045badc44e99bc9 100644 --- a/src/main/java/eu/siacs/conversations/http/HttpDownloadConnection.java +++ b/src/main/java/eu/siacs/conversations/http/HttpDownloadConnection.java @@ -195,9 +195,12 @@ public class HttpDownloadConnection implements Transferable { try { mXmppConnectionService.getFileBackend().setupRelativeFilePath(message, new FileInputStream(tmp), extension); file = mXmppConnectionService.getFileBackend().getFile(message); - tmp.renameTo(file); + boolean didRename = tmp.renameTo(file); + if (!didRename) throw new IOException("rename failed"); } catch (final IOException e) { + Log.w(Config.LOGTAG, "Failed to rename downloaded file: " + e); file = tmp; + message.setRelativeFilePath(file.getAbsolutePath()); } message.setTransferable(null); mXmppConnectionService.updateMessage(message); diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleFileTransferConnection.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleFileTransferConnection.java index b7b5aae4bded073cffc3a3a64319e4f5879607a7..38ef60ccd0a231616d7e77583e1ab5965b8cbc06 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleFileTransferConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleFileTransferConnection.java @@ -133,9 +133,11 @@ public class JingleFileTransferConnection extends AbstractJingleConnection imple try { xmppConnectionService.getFileBackend().setupRelativeFilePath(message, new FileInputStream(file), extension); finalFile = xmppConnectionService.getFileBackend().getFile(message); - file.renameTo(finalFile); + boolean didRename = file.renameTo(finalFile); + if (!didRename) throw new IOException("rename failed"); } catch (final IOException e) { finalFile = file; + message.setRelativeFilePath(finalFile.getAbsolutePath()); } xmppConnectionService.getFileBackend().updateFileParams(message, null, false);