diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java b/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java index b3410e578..e46cecc00 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java @@ -51,14 +51,12 @@ public abstract class AbstractMultiPartRequest implements MultiPartRequest { /** * Specifies the maximum size of the entire request. */ - protected long maxSize; - protected boolean maxSizeProvided; + protected Long maxSize; /** * Specifies the maximum number of files in one request. */ - protected long maxFiles; - protected boolean maxFilesProvided; + protected Long maxFiles; /** * Specifies the buffer size to use during streaming. @@ -90,13 +88,11 @@ public abstract class AbstractMultiPartRequest implements MultiPartRequest { */ @Inject(StrutsConstants.STRUTS_MULTIPART_MAXSIZE) public void setMaxSize(String maxSize) { - this.maxSizeProvided = true; this.maxSize = Long.parseLong(maxSize); } @Inject(StrutsConstants.STRUTS_MULTIPART_MAXFILES) public void setMaxFiles(String maxFiles) { - this.maxFilesProvided = true; this.maxFiles = Long.parseLong(maxFiles); } @@ -146,9 +142,9 @@ public abstract class AbstractMultiPartRequest implements MultiPartRequest { int forwardSlash = fileName.lastIndexOf('/'); int backwardSlash = fileName.lastIndexOf('\\'); if (forwardSlash != -1 && forwardSlash > backwardSlash) { - fileName = fileName.substring(forwardSlash + 1, fileName.length()); + fileName = fileName.substring(forwardSlash + 1); } else { - fileName = fileName.substring(backwardSlash + 1, fileName.length()); + fileName = fileName.substring(backwardSlash + 1); } return fileName; } diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java index c20b1de19..00d922401 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java @@ -160,8 +160,12 @@ public class JakartaMultiPartRequest extends AbstractMultiPartRequest { protected ServletFileUpload createServletFileUpload(DiskFileItemFactory fac) { ServletFileUpload upload = new ServletFileUpload(fac); - upload.setSizeMax(maxSize); - upload.setFileCountMax(maxFiles); + if (maxSize != null) { + upload.setSizeMax(maxSize); + } + if (maxFiles != null) { + upload.setFileCountMax(maxFiles); + } return upload; } diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java index f709b3416..c7311ab0a 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java @@ -30,15 +30,15 @@ import org.apache.struts2.dispatcher.LocalizedMessage; import javax.servlet.http.HttpServletRequest; import java.io.*; +import java.nio.file.Files; import java.util.*; /** * Multi-part form data request adapter for Jakarta Commons FileUpload package that * leverages the streaming API rather than the traditional non-streaming API. - * + *
* For more details see WW-3025
*
- * @author Chris Cranford
* @since 2.3.18
*/
public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
@@ -85,7 +85,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
types.add(fileInfo.getContentType());
}
- return types.toArray(new String[types.size()]);
+ return types.toArray(new String[0]);
}
/* (non-Javadoc)
@@ -102,7 +102,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
files.add(new StrutsUploadedFile(fileInfo.getFile()));
}
- return files.toArray(new UploadedFile[files.size()]);
+ return files.toArray(new UploadedFile[0]);
}
/* (non-Javadoc)
@@ -119,7 +119,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
names.add(getCanonicalName(fileInfo.getOriginalName()));
}
- return names.toArray(new String[names.size()]);
+ return names.toArray(new String[0]);
}
/* (non-Javadoc)
@@ -143,7 +143,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
names.add(fileInfo.getFile().getName());
}
- return names.toArray(new String[names.size()]);
+ return names.toArray(new String[0]);
}
/* (non-Javadoc)
@@ -170,7 +170,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
public String[] getParameterValues(String name) {
List