diff --git a/multiapps-mta/pom.xml b/multiapps-mta/pom.xml
index 8d15aac6..8000dd49 100644
--- a/multiapps-mta/pom.xml
+++ b/multiapps-mta/pom.xml
@@ -20,10 +20,6 @@
org.apache.commons
commons-collections4
-
- commons-fileupload
- commons-fileupload
-
com.vdurmont
semver4j
diff --git a/multiapps-mta/src/main/java/module-info.java b/multiapps-mta/src/main/java/module-info.java
index 6394a884..3ab88054 100644
--- a/multiapps-mta/src/main/java/module-info.java
+++ b/multiapps-mta/src/main/java/module-info.java
@@ -33,6 +33,5 @@
requires static java.compiler;
requires static org.immutables.value;
- requires commons.fileupload;
}
\ No newline at end of file
diff --git a/multiapps-mta/src/main/java/org/cloudfoundry/multiapps/mta/handlers/ArchiveHandler.java b/multiapps-mta/src/main/java/org/cloudfoundry/multiapps/mta/handlers/ArchiveHandler.java
index b688eaac..65495a89 100644
--- a/multiapps-mta/src/main/java/org/cloudfoundry/multiapps/mta/handlers/ArchiveHandler.java
+++ b/multiapps-mta/src/main/java/org/cloudfoundry/multiapps/mta/handlers/ArchiveHandler.java
@@ -8,11 +8,11 @@
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
-import org.apache.commons.fileupload.util.LimitedInputStream;
import org.apache.commons.io.IOUtils;
import org.cloudfoundry.multiapps.common.ContentException;
import org.cloudfoundry.multiapps.common.SLException;
import org.cloudfoundry.multiapps.mta.Messages;
+import org.cloudfoundry.multiapps.mta.util.LimitedInputStream;
public class ArchiveHandler {
diff --git a/multiapps-mta/src/main/java/org/cloudfoundry/multiapps/mta/util/LimitedInputStream.java b/multiapps-mta/src/main/java/org/cloudfoundry/multiapps/mta/util/LimitedInputStream.java
new file mode 100644
index 00000000..d9aabef2
--- /dev/null
+++ b/multiapps-mta/src/main/java/org/cloudfoundry/multiapps/mta/util/LimitedInputStream.java
@@ -0,0 +1,47 @@
+package org.cloudfoundry.multiapps.mta.util;
+
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.concurrent.atomic.AtomicLong;
+
+public abstract class LimitedInputStream extends FilterInputStream {
+
+ private final AtomicLong counter;
+ private final long maxSize;
+
+ public LimitedInputStream(InputStream in, long maxSize) {
+ super(in);
+ this.counter = new AtomicLong(0);
+ this.maxSize = maxSize;
+ }
+
+ @Override
+ public int read() throws IOException {
+ int i = super.read();
+ if (i > 0) {
+ counter.incrementAndGet();
+ checkSize();
+ }
+ return i;
+ }
+
+ @Override
+ public int read(byte[] b, int off, int len) throws IOException {
+ int i = super.read(b, off, len);
+ if (i > 0) {
+ counter.addAndGet(i);
+ checkSize();
+ }
+ return i;
+ }
+
+ private void checkSize() {
+ long currentSize = counter.get();
+ if (currentSize >= maxSize) {
+ raiseError(maxSize, currentSize);
+ }
+ }
+
+ protected abstract void raiseError(long maxSize, long currentSize);
+}
diff --git a/pom.xml b/pom.xml
index 8bd681aa..ac84b8e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,6 @@
3.12.0
4.4
2.11.0
- 1.5
2.0.6
2.0
3.1.0
@@ -304,12 +303,6 @@
commons-io
${commons-io.version}
-
-
- commons-fileupload
- commons-fileupload
- ${commons-fileupload.version}
-
org.yaml