This is an automated email from the ASF dual-hosted git repository.

chtompki pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-fileupload.git


The following commit(s) were added to refs/heads/master by this push:
     new d7518ac  FILEUPLOAD-292: Don't create un-needed resources
d7518ac is described below

commit d7518ac9ecc80f5c6d4ed1324ec0becd81c320dd
Author: Rob Tompkins <chtom...@apache.org>
AuthorDate: Thu Dec 20 14:25:44 2018 -0500

    FILEUPLOAD-292: Don't create un-needed resources
---
 src/changes/changes.xml                               |  1 +
 .../org/apache/commons/fileupload/FileUploadBase.java | 19 +++++++++++--------
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 5ca419e..22cb8e4 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -44,6 +44,7 @@ The <action> type attribute can be add,update,fix,remove.
 
   <body>
     <release version="1.4" date="2017-06-03" description="1.4 Release">
+      <action issue="FILEUPLOAD-292" dev="chtompki" type="update">Don't create 
un-needed resources in FileUploadBase.java</action>
       <action issue="FILEUPLOAD-282" dev="chtompki" type="update">Upversion 
complier.source, compiler.target to 1.6</action>
       <action issue="FILEUPLOAD-252" dev="tn" type="fix">DiskFileItem#write() 
could lose original IO exception</action>
       <action issue="FILEUPLOAD-258" dev="tn" 
type="fix">DiskFileItem#getStoreLocation() wrongly returned a File object for 
items stored in memory</action>
diff --git a/src/main/java/org/apache/commons/fileupload/FileUploadBase.java 
b/src/main/java/org/apache/commons/fileupload/FileUploadBase.java
index 13e8791..aaad4d2 100644
--- a/src/main/java/org/apache/commons/fileupload/FileUploadBase.java
+++ b/src/main/java/org/apache/commons/fileupload/FileUploadBase.java
@@ -764,20 +764,23 @@ public abstract class FileUploadBase {
                 fieldName = pFieldName;
                 contentType = pContentType;
                 formField = pFormField;
-                final ItemInputStream itemStream = multi.newInputStream();
-                InputStream istream = itemStream;
-                if (fileSizeMax != -1) {
+                if (fileSizeMax != -1) { // Check if limit is already exceeded
                     if (pContentLength != -1
-                            &&  pContentLength > fileSizeMax) {
+                            && pContentLength > fileSizeMax) {
                         FileSizeLimitExceededException e =
-                            new FileSizeLimitExceededException(
-                                format("The field %s exceeds its maximum 
permitted size of %s bytes.",
-                                       fieldName, Long.valueOf(fileSizeMax)),
-                                pContentLength, fileSizeMax);
+                                new FileSizeLimitExceededException(
+                                        format("The field %s exceeds its 
maximum permitted size of %s bytes.",
+                                                fieldName, 
Long.valueOf(fileSizeMax)),
+                                        pContentLength, fileSizeMax);
                         e.setFileName(pName);
                         e.setFieldName(pFieldName);
                         throw new FileUploadIOException(e);
                     }
+                }
+                // OK to construct stream now
+                final ItemInputStream itemStream = multi.newInputStream();
+                InputStream istream = itemStream;
+                if (fileSizeMax != -1) {
                     istream = new LimitedInputStream(istream, fileSizeMax) {
                         @Override
                         protected void raiseError(long pSizeMax, long pCount)

Reply via email to