summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java
diff options
context:
space:
mode:
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.java5
1 files changed, 4 insertions, 1 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 ec4f5f18..03abada4 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/DownloadTask.java
@@ -35,7 +35,6 @@ public class DownloadTask extends TransferTask {
private final RandomAccessFile fileHandle;
private final ChunkList chunks;
private boolean fileWritable = true;
- private AtomicInteger consecutiveInitFails = new AtomicInteger();
public DownloadTask(String host, int port, String downloadToken, File destinationFile, long fileSize,
List<ByteBuffer> sha1Sums) throws FileNotFoundException {
@@ -128,6 +127,7 @@ public class DownloadTask extends TransferTask {
downloader = new Downloader(host, port, Config.TRANSFER_TIMEOUT, null, downloadToken);
} catch (Exception e) {
LOGGER.warn("Could not initialize new uploader", e);
+ consecutiveInitFails.incrementAndGet();
connectFailed(this);
return;
} // TODO: SSL
@@ -168,6 +168,9 @@ public class DownloadTask extends TransferTask {
if (consecutiveInitFails.get() > 20) {
state = TransferState.ERROR;
error = "Cannot talk to server after 20 tries...";
+ } else if (chunks.isComplete()) {
+ state = TransferState.FINISHED;
+ error = null;
} else {
state = TransferState.WORKING;
error = null;