summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/TransferTask.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-10-02 15:59:17 +0200
committerSimon Rettberg2015-10-02 15:59:17 +0200
commita3f643c4544a986dc4e808ada28089b0dbab9846 (patch)
tree0e27ef775d13b96dfb2351950f06d84e1e0da52b /dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/TransferTask.java
parent[server] Tweaks/fixes to file transfers (diff)
downloadtutor-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.java14
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);
}
}
}