diff options
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, 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; |