You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2017/03/23 06:14:43 UTC
struts git commit: WW-4767 Makes some methods protected instead
private to allow override them when subclassing
Repository: struts
Updated Branches:
refs/heads/master 6dcff10a6 -> 82f61666f
WW-4767 Makes some methods protected instead private to allow override them when subclassing
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/82f61666
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/82f61666
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/82f61666
Branch: refs/heads/master
Commit: 82f61666f8f8337f4aa23e5ed38d66aa12f87b4c
Parents: 6dcff10
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Mar 23 07:14:32 2017 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Mar 23 07:14:32 2017 +0100
----------------------------------------------------------------------
.../multipart/AbstractMultiPartRequest.java | 17 +++++++++
.../multipart/JakartaMultiPartRequest.java | 32 ++++------------
.../JakartaStreamMultiPartRequest.java | 39 ++++++--------------
3 files changed, 37 insertions(+), 51 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/82f61666/core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java
----------------------------------------------------------------------
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 cc20523..10ed6cd 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
@@ -107,4 +107,21 @@ public abstract class AbstractMultiPartRequest implements MultiPartRequest {
return errors;
}
+ /**
+ * @param originalFileName file name
+ * @return the canonical name based on the supplied filename
+ */
+ protected String getCanonicalName(final String originalFileName) {
+ String fileName = originalFileName;
+
+ int forwardSlash = fileName.lastIndexOf("/");
+ int backwardSlash = fileName.lastIndexOf("\\");
+ if (forwardSlash != -1 && forwardSlash > backwardSlash) {
+ fileName = fileName.substring(forwardSlash + 1, fileName.length());
+ } else {
+ fileName = fileName.substring(backwardSlash + 1, fileName.length());
+ }
+ return fileName;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/struts/blob/82f61666/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
----------------------------------------------------------------------
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 e6fab1e..68bbd2b 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
@@ -87,12 +87,14 @@ public class JakartaMultiPartRequest extends AbstractMultiPartRequest {
}
protected void processUpload(HttpServletRequest request, String saveDir) throws FileUploadException, UnsupportedEncodingException {
- for (FileItem item : parseRequest(request, saveDir)) {
- LOG.debug("Found file item: [{}]", item.getFieldName());
- if (item.isFormField()) {
- processNormalFormField(item, request.getCharacterEncoding());
- } else {
- processFileField(item);
+ if (ServletFileUpload.isMultipartContent(request)) {
+ for (FileItem item : parseRequest(request, saveDir)) {
+ LOG.debug("Found file item: [{}]", item.getFieldName());
+ if (item.isFormField()) {
+ processNormalFormField(item, request.getCharacterEncoding());
+ } else {
+ processFileField(item);
+ }
}
}
}
@@ -281,24 +283,6 @@ public class JakartaMultiPartRequest extends AbstractMultiPartRequest {
}
/**
- * Returns the canonical name of the given file.
- *
- * @param filename the given file
- * @return the canonical name of the given file
- */
- private String getCanonicalName(String filename) {
- int forwardSlash = filename.lastIndexOf("/");
- int backwardSlash = filename.lastIndexOf("\\");
- if (forwardSlash != -1 && forwardSlash > backwardSlash) {
- filename = filename.substring(forwardSlash + 1, filename.length());
- } else if (backwardSlash != -1 && backwardSlash >= forwardSlash) {
- filename = filename.substring(backwardSlash + 1, filename.length());
- }
-
- return filename;
- }
-
- /**
* Creates a RequestContext needed by Jakarta Commons Upload.
*
* @param req the request.
http://git-wip-us.apache.org/repos/asf/struts/blob/82f61666/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 11b5a0d..4703338 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,12 +30,12 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
/**
* Map between file fields and file data.
*/
- private Map<String, List<FileInfo>> fileInfos = new HashMap<>();
+ protected Map<String, List<FileInfo>> fileInfos = new HashMap<>();
/**
* Map between non-file fields and values.
*/
- private Map<String, List<String>> parameters = new HashMap<>();
+ protected Map<String, List<String>> parameters = new HashMap<>();
/* (non-Javadoc)
* @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#cleanUp()
@@ -180,7 +180,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
* @param saveDir location of the save dir
* @throws Exception
*/
- private void processUpload(HttpServletRequest request, String saveDir) throws Exception {
+ protected void processUpload(HttpServletRequest request, String saveDir) throws Exception {
// Sanity check that the request is a multi-part/form-data request.
if (ServletFileUpload.isMultipartContent(request)) {
@@ -233,7 +233,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
* @param request the servlet request
* @return true if request size is permitted
*/
- private boolean isRequestSizePermitted(HttpServletRequest request) {
+ protected boolean isRequestSizePermitted(HttpServletRequest request) {
// if maxSize is specified as -1, there is no sanity check and it's
// safe to return true for any request, delegating the failure
// checks later in the upload process.
@@ -248,7 +248,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
* @param request the servlet request
* @return the request content length.
*/
- private long getRequestSize(HttpServletRequest request) {
+ protected long getRequestSize(HttpServletRequest request) {
long requestSize = 0;
if (request != null) {
requestSize = request.getContentLength();
@@ -263,7 +263,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
* @param fileName file name
* @param request the servlet request
*/
- private void addFileSkippedError(String fileName, HttpServletRequest request) {
+ protected void addFileSkippedError(String fileName, HttpServletRequest request) {
String exceptionMessage = "Skipped file " + fileName + "; request size limit exceeded.";
FileSizeLimitExceededException exception = new FileUploadBase.FileSizeLimitExceededException(exceptionMessage, getRequestSize(request), maxSize);
LocalizedMessage message = buildErrorMessage(exception, new Object[]{fileName, getRequestSize(request), maxSize});
@@ -277,7 +277,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
*
* @param itemStream file item stream
*/
- private void processFileItemStreamAsFormField(FileItemStream itemStream) {
+ protected void processFileItemStreamAsFormField(FileItemStream itemStream) {
String fieldName = itemStream.getFieldName();
try {
List<String> values;
@@ -300,7 +300,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
* @param itemStream file item stream
* @param location location
*/
- private void processFileItemStreamAsFileField(FileItemStream itemStream, String location) {
+ protected 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());
@@ -334,7 +334,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
* @return temporary file based on the given filename and location
* @throws IOException in case of IO errors
*/
- private File createTemporaryFile(String fileName, String location) throws IOException {
+ protected File createTemporaryFile(String fileName, String location) throws IOException {
String name = fileName
.substring(fileName.lastIndexOf('/') + 1)
.substring(fileName.lastIndexOf('\\') + 1);
@@ -364,7 +364,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
* @return true if stream was successfully
* @throws IOException in case of IO errors
*/
- private boolean streamFileToDisk(FileItemStream itemStream, File file) throws IOException {
+ protected boolean streamFileToDisk(FileItemStream itemStream, File file) throws IOException {
boolean result = false;
try (InputStream input = itemStream.openStream();
OutputStream output = new BufferedOutputStream(new FileOutputStream(file), bufferSize)) {
@@ -386,7 +386,7 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
* @param itemStream file item stream
* @param file the file
*/
- private void createFileInfoFromItemStream(FileItemStream itemStream, File file) {
+ protected void createFileInfoFromItemStream(FileItemStream itemStream, File file) {
// gather attributes from file upload stream.
String fileName = itemStream.getName();
String fieldName = itemStream.getFieldName();
@@ -403,27 +403,12 @@ public class JakartaStreamMultiPartRequest extends AbstractMultiPartRequest {
}
/**
- * @param fileName file name
- * @return the canonical name based on the supplied filename
- */
- private String getCanonicalName(String fileName) {
- int forwardSlash = fileName.lastIndexOf("/");
- int backwardSlash = fileName.lastIndexOf("\\");
- if (forwardSlash != -1 && forwardSlash > backwardSlash) {
- fileName = fileName.substring(forwardSlash + 1, fileName.length());
- } else {
- fileName = fileName.substring(backwardSlash + 1, fileName.length());
- }
- return fileName;
- }
-
- /**
* Internal data structure used to store a reference to information needed
* to later pass post processing data to the <code>FileUploadInterceptor</code>.
*
* @since 7.0.0
*/
- private static class FileInfo implements Serializable {
+ public static class FileInfo implements Serializable {
private static final long serialVersionUID = 1083158552766906037L;