[2/3] struts git commit: WW-4583 JakartaStreamMultiPartRequest fails on short file name and on empty file input
WW-4583 JakartaStreamMultiPartRequest fails on short file name and on empty file input (cherry picked from commit a4f8d492144a62af2a7d5e934e62d737bdfc8058) Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/9a0a0a16 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/9a0a0a16 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/9a0a0a16 Branch: refs/heads/support-2-3 Commit: 9a0a0a16e9a61b55d3906b9b7059ebc3356efab0 Parents: bf46145 Author: Aleksandr Mashchenko Authored: Wed Jan 6 19:24:56 2016 +0200 Committer: Aleksandr Mashchenko Committed: Wed Jan 6 19:26:18 2016 +0200 -- .../multipart/JakartaStreamMultiPartRequest.java | 10 ++ 1 file changed, 10 insertions(+) -- http://git-wip-us.apache.org/repos/asf/struts/blob/9a0a0a16/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java -- 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 6fbd2c3..1270e07 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 @@ -392,6 +392,12 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest { * @param location */ private void processFileItemStreamAsFileField(FileItemStream itemStream, String location) { +// Skip file uploads that don't have a file name - meaning that no file was selected. +if (itemStream.getName() == null || itemStream.getName().trim().length() < 1) { +LOG.debug("No file has been uploaded for the field: {}", itemStream.getFieldName()); +return; +} + File file = null; try { // Create the temporary upload file. @@ -433,6 +439,10 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest { suffix = name.substring(name.lastIndexOf('.')); } +if (prefix.length() < 3) { +prefix = UUID.randomUUID().toString(); +} + File file = File.createTempFile(prefix + "_", suffix, new File(location)); LOG.debug("Creating temporary file '#0' (originally '#1').", file.getName(), fileName); return file;
[3/3] struts git commit: Add import for UUID
Add import for UUID Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/b448d799 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/b448d799 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/b448d799 Branch: refs/heads/support-2-3 Commit: b448d79959e14fcd2c7db8103c8173d0cf5385dc Parents: 9a0a0a1 Author: Aleksandr Mashchenko Authored: Wed Jan 6 19:30:12 2016 +0200 Committer: Aleksandr Mashchenko Committed: Wed Jan 6 19:30:12 2016 +0200 -- .../struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java | 1 + 1 file changed, 1 insertion(+) -- http://git-wip-us.apache.org/repos/asf/struts/blob/b448d799/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java -- 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 1270e07..e22cee3 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 @@ -28,6 +28,7 @@ import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.UUID; /** * Multi-part form data request adapter for Jakarta Commons FileUpload package that
[1/3] struts git commit: WW-4583 JakartaStreamMultiPartRequest fails on short file name and on empty file input
Repository: struts Updated Branches: refs/heads/master 4f29d8861 -> a4f8d4921 refs/heads/support-2-3 bf46145ba -> b448d7995 WW-4583 JakartaStreamMultiPartRequest fails on short file name and on empty file input Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/a4f8d492 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/a4f8d492 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/a4f8d492 Branch: refs/heads/master Commit: a4f8d492144a62af2a7d5e934e62d737bdfc8058 Parents: 4f29d88 Author: Aleksandr Mashchenko Authored: Wed Jan 6 19:24:56 2016 +0200 Committer: Aleksandr Mashchenko Committed: Wed Jan 6 19:24:56 2016 +0200 -- .../multipart/JakartaStreamMultiPartRequest.java | 10 ++ 1 file changed, 10 insertions(+) -- http://git-wip-us.apache.org/repos/asf/struts/blob/a4f8d492/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaStreamMultiPartRequest.java -- 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 6727f3e..f4c4665 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 @@ -384,6 +384,12 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest { * @param location location */ private void processFileItemStreamAsFileField(FileItemStream itemStream, String location) { +// Skip file uploads that don't have a file name - meaning that no file was selected. +if (itemStream.getName() == null || itemStream.getName().trim().length() < 1) { +LOG.debug("No file has been uploaded for the field: {}", itemStream.getFieldName()); +return; +} + File file = null; try { // Create the temporary upload file. @@ -424,6 +430,10 @@ public class JakartaStreamMultiPartRequest implements MultiPartRequest { suffix = name.substring(name.lastIndexOf('.')); } +if (prefix.length() < 3) { +prefix = UUID.randomUUID().toString(); +} + File file = File.createTempFile(prefix + "_", suffix, new File(location)); LOG.debug("Creating temporary file '{}' (originally '{}').", file.getName(), fileName); return file;