diff options
author | Simon Rettberg | 2015-07-21 14:04:18 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-07-21 14:04:18 +0200 |
commit | a2555cd06a1fa34067ee34b58e14f275deabd952 (patch) | |
tree | d79ca6bad232ae158f1491708bb9e9e60c4d024f /dozentenmodulserver/src/main/java/org | |
parent | [client] Created TransferTask base class for uploads and downloads (diff) | |
download | tutor-module-a2555cd06a1fa34067ee34b58e14f275deabd952.tar.gz tutor-module-a2555cd06a1fa34067ee34b58e14f275deabd952.tar.xz tutor-module-a2555cd06a1fa34067ee34b58e14f275deabd952.zip |
[server] Make uploads cancellable, configurable transfer timeouts
Diffstat (limited to 'dozentenmodulserver/src/main/java/org')
3 files changed, 7 insertions, 4 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/ActiveUpload.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/ActiveUpload.java index 49cfed56..da15656d 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/ActiveUpload.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/ActiveUpload.java @@ -201,10 +201,12 @@ public class ActiveUpload { } public synchronized void cancel() { - if (download != null) // TODO: Thread safety - download.close("Cancelled"); - if (state != TransferState.FINISHED) + if (download != null) { + download.cancel(); + } + if (state != TransferState.FINISHED) { state = TransferState.ERROR; + } } /** diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java index 3859322f..93089b5a 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java @@ -31,7 +31,7 @@ public class FileServer implements IncomingEvent { /** * Listener for incoming unencrypted connections */ - private final Listener plainListener = new Listener(this, null, 9092); // TODO: Config + private final Listener plainListener = new Listener(this, null, 9092, Constants.TRANSFER_TIMEOUT); // TODO: Config private final ThreadPoolExecutor transferPool = new ThreadPoolExecutor(2, Constants.MAX_UPLOADS + Constants.MAX_DOWNLOADS, 1, TimeUnit.MINUTES, new ArrayBlockingQueue<Runnable>(1)); diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Constants.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Constants.java index 0d6328b4..8216fd86 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Constants.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/util/Constants.java @@ -6,6 +6,7 @@ public class Constants { public static final String INCOMPLETE_UPLOAD_SUFFIX = ".part"; public static final int MAX_UPLOADS; public static final int MAX_DOWNLOADS; + public static final int TRANSFER_TIMEOUT = 15 * 1000; // 15s static { long maxMem = Runtime.getRuntime().maxMemory(); |