From a2555cd06a1fa34067ee34b58e14f275deabd952 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 21 Jul 2015 14:04:18 +0200 Subject: [server] Make uploads cancellable, configurable transfer timeouts --- .../src/main/java/org/openslx/bwlp/sat/fileserv/ActiveUpload.java | 8 +++++--- .../src/main/java/org/openslx/bwlp/sat/fileserv/FileServer.java | 2 +- .../src/main/java/org/openslx/bwlp/sat/util/Constants.java | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) (limited to 'dozentenmodulserver/src/main/java') 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(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(); -- cgit v1.2.3-55-g7522