summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java
index 71c7add8..6eb8a988 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/filetransfer/UploadTask.java
@@ -2,6 +2,7 @@ package org.openslx.dozmod.filetransfer;
import java.io.File;
import java.io.FileNotFoundException;
+import java.util.concurrent.atomic.AtomicInteger;
import org.apache.log4j.Logger;
import org.apache.thrift.TException;
@@ -34,6 +35,20 @@ public class UploadTask extends TransferTask {
private final int port;
private final String uploadToken;
private String remoteError = null;
+
+ /**
+ * Keep track of the number of active upload connections
+ */
+ private static AtomicInteger numConnections = new AtomicInteger();
+
+ /**
+ * Get the number of active upload workers. This counts individual
+ * upload connections, not logical uploads which might use more than
+ * one connection at a time.
+ */
+ public static int getNumberOfUploads() {
+ return numConnections.get();
+ }
public UploadTask(String host, int port, String uploadToken, File uploadFile)
throws FileNotFoundException {
@@ -53,6 +68,15 @@ public class UploadTask extends TransferTask {
@Override
public void run() {
+ numConnections.incrementAndGet();
+ try {
+ run2();
+ } finally {
+ numConnections.decrementAndGet();
+ }
+ }
+
+ public void run2() {
try {
uploader = new Uploader(host, port, Config.TRANSFER_TIMEOUT, null, uploadToken);
} catch (Exception e) {