summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-09-30 13:45:10 +0200
committerSimon Rettberg2015-09-30 13:45:10 +0200
commit2e7c0179cf83bda3a26589d7b6c3c852adf4df41 (patch)
treec5feee4daf97c55c18bbca4d8dd6e43c5638b2fa /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java
parent[client] Added "Show linking lectures" button im imageDetailsW. (diff)
downloadtutor-module-2e7c0179cf83bda3a26589d7b6c3c852adf4df41.tar.gz
tutor-module-2e7c0179cf83bda3a26589d7b6c3c852adf4df41.tar.xz
tutor-module-2e7c0179cf83bda3a26589d7b6c3c852adf4df41.zip
[server] Fix transfer timeout detection and active counting
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java16
1 files changed, 7 insertions, 9 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java
index 4dc69c03..97c076c9 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java
@@ -45,11 +45,6 @@ public class IncomingDataTransfer extends AbstractTransfer implements HashCheckC
private static final Logger LOGGER = Logger.getLogger(IncomingDataTransfer.class);
/**
- * How many concurrent connections per upload
- */
- private static final int MAX_CONNECTIONS = Math.min(4, Math.max(Constants.MAX_UPLOADS / 4, 1));
-
- /**
* Self reference for inner classes.
*/
private final IncomingDataTransfer activeUpload = this;
@@ -235,7 +230,7 @@ public class IncomingDataTransfer extends AbstractTransfer implements HashCheckC
if (state == TransferState.FINISHED || state == TransferState.ERROR)
return false;
synchronized (downloads) {
- if (downloads.size() >= MAX_CONNECTIONS)
+ if (downloads.size() >= Constants.MAX_CONNECTIONS_PER_TRANSFER)
return false;
downloads.add(connection);
}
@@ -261,13 +256,16 @@ public class IncomingDataTransfer extends AbstractTransfer implements HashCheckC
}
}
});
- if (state == TransferState.IDLE) {
- state = TransferState.WORKING;
- }
} catch (Exception e) {
LOGGER.warn("threadpool rejected the incoming file transfer", e);
+ synchronized (downloads) {
+ downloads.remove(connection);
+ }
return false;
}
+ if (state == TransferState.IDLE) {
+ state = TransferState.WORKING;
+ }
return true;
}