diff options
author | Simon Rettberg | 2015-10-02 15:59:17 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-10-02 15:59:17 +0200 |
commit | a3f643c4544a986dc4e808ada28089b0dbab9846 (patch) | |
tree | 0e27ef775d13b96dfb2351950f06d84e1e0da52b /dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/TransferTask.java | |
parent | [server] Tweaks/fixes to file transfers (diff) | |
download | tutor-module-a3f643c4544a986dc4e808ada28089b0dbab9846.tar.gz tutor-module-a3f643c4544a986dc4e808ada28089b0dbab9846.tar.xz tutor-module-a3f643c4544a986dc4e808ada28089b0dbab9846.zip |
[client] Fix several issues with the new upload scheme
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/TransferTask.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/TransferTask.java | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/TransferTask.java b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/TransferTask.java index 056e5f71..dbc42b16 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/TransferTask.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/TransferTask.java @@ -53,12 +53,14 @@ public abstract class TransferTask implements Runnable { while (!isCancelled && !Thread.interrupted()) { TransferEvent event = getTransferEvent(); if (event != null) { - fireEvent(event); - if (event.state == TransferState.ERROR) { - break; - } if (event.state == TransferState.FINISHED) { isComplete = true; + } + if (event.state == TransferState.ERROR) { + isCancelled = true; + } + fireEvent(event); + if (event.state == TransferState.ERROR || event.state == TransferState.FINISHED) { break; } } @@ -96,8 +98,8 @@ public abstract class TransferTask implements Runnable { private void fireEvent(TransferEvent event) { synchronized (listeners) { - for (TransferEventListener listener : listeners) { - listener.update(event); + for (int i = listeners.size() - 1; i >= 0; --i) { + listeners.get(i).update(event); } } } |