From 8bb1ae726b5108d8ff58dbfd36378fb8319dfa98 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 23 Sep 2015 16:52:16 +0200 Subject: [client] Disable login button while login is running; create legacy vmx if server doesn't supply one --- .../src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java') 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 { -- cgit v1.2.3-55-g7522