diff options
author | Simon Rettberg | 2015-09-23 16:52:16 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-09-23 16:52:16 +0200 |
commit | 8bb1ae726b5108d8ff58dbfd36378fb8319dfa98 (patch) | |
tree | 05e0b880c824673bc9d7e0d8bc2c33e8c3630b28 /dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java | |
parent | [server] Fix race condition on delete; check for vmstore before up/download (diff) | |
download | tutor-module-8bb1ae726b5108d8ff58dbfd36378fb8319dfa98.tar.gz tutor-module-8bb1ae726b5108d8ff58dbfd36378fb8319dfa98.tar.xz tutor-module-8bb1ae726b5108d8ff58dbfd36378fb8319dfa98.zip |
[client] Disable login button while login is running; create legacy vmx if server doesn't supply one
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java index 0cd77713..0aa48e8c 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java @@ -103,12 +103,12 @@ public class DownloadTask extends TransferTask { if (chunk == null) return; // TODO: Hash check, async - chunks.markSuccessful(chunk); try { synchronized (fileHandle) { fileHandle.seek(chunk.range.startOffset); fileHandle.write(buffer, 0, chunk.range.getLength()); } + chunks.markSuccessful(chunk); } catch (Exception e) { LOGGER.error("Could not write to file at offset " + chunk.range.startOffset, e); fileWritable = false; @@ -166,7 +166,8 @@ public class DownloadTask extends TransferTask { if (consecutiveInitFails.get() > 20) { state = TransferState.ERROR; error = "Cannot talk to server after 20 tries..."; - } else if (chunks.isComplete()) { + } else if (chunks.isComplete() && getTransferCount() == 0) { + Util.safeClose(fileHandle); state = TransferState.FINISHED; error = null; } else { |