commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From joc...@apache.org
Subject svn commit: r1743480 - /commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/MultipartStream.java
Date Thu, 12 May 2016 08:13:59 GMT
Author: jochen
Date: Thu May 12 08:13:59 2016
New Revision: 1743480

URL: http://svn.apache.org/viewvc?rev=1743480&view=rev
Log:
Attempt to fix a possible performance issue with large boundaries.
Preliminary, may be rolled back shortly.

Modified:
    commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/MultipartStream.java

Modified: commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/MultipartStream.java
URL: http://svn.apache.org/viewvc/commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/MultipartStream.java?rev=1743480&r1=1743479&r2=1743480&view=diff
==============================================================================
--- commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/MultipartStream.java
(original)
+++ commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload/MultipartStream.java
Thu May 12 08:13:59 2016
@@ -325,12 +325,6 @@ public class MultipartStream {
         if (boundary == null) {
             throw new IllegalArgumentException("boundary may not be null");
         }
-
-        this.input = input;
-        this.bufSize = bufSize;
-        this.buffer = new byte[bufSize];
-        this.notifier = pNotifier;
-
         // We prepend CR/LF to the boundary to chop trailing CR/LF from
         // body-data tokens.
         this.boundaryLength = boundary.length + BOUNDARY_PREFIX.length;
@@ -338,6 +332,12 @@ public class MultipartStream {
             throw new IllegalArgumentException(
                     "The buffer size specified for the MultipartStream is too small");
         }
+
+        this.input = input;
+        this.bufSize = Math.max(bufSize, boundaryLength*2);
+        this.buffer = new byte[this.bufSize];
+        this.notifier = pNotifier;
+
         this.boundary = new byte[this.boundaryLength];
         this.keepRegion = this.boundary.length;
 



Mime
View raw message