[ https://issues.apache.org/jira/browse/WW-5388?focusedWorklogId=920261&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-920261 ]
ASF GitHub Bot logged work on WW-5388: -------------------------------------- Author: ASF GitHub Bot Created on: 21/May/24 15:32 Start Date: 21/May/24 15:32 Worklog Time Spent: 10m Work Description: lukaszlenart commented on code in PR #861: URL: https://github.com/apache/struts/pull/861#discussion_r1608537187 ########## core/src/main/java/org/apache/struts2/dispatcher/multipart/AbstractMultiPartRequest.java: ########## @@ -171,4 +298,109 @@ protected String getCanonicalName(final String originalFileName) { return fileName; } + protected String sanitizeNewlines(String before) { + return before.replaceAll("\\R", "_"); + } + + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getErrors() + */ + public List<LocalizedMessage> getErrors() { + return errors; + } + + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getFileParameterNames() + */ + public Enumeration<String> getFileParameterNames() { + return Collections.enumeration(uploadedFiles.keySet()); + } + + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getContentType(java.lang.String) + */ + public String[] getContentType(String fieldName) { + return uploadedFiles.getOrDefault(fieldName, Collections.emptyList()).stream() + .map(UploadedFile::getContentType) + .toArray(String[]::new); + } + + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getFile(java.lang.String) + */ + @SuppressWarnings("unchecked") + public UploadedFile<T>[] getFile(String fieldName) { + return uploadedFiles.getOrDefault(fieldName, Collections.emptyList()) + .toArray(UploadedFile[]::new); + } + + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getFileNames(java.lang.String) + */ + public String[] getFileNames(String fieldName) { + return uploadedFiles.getOrDefault(fieldName, Collections.emptyList()).stream() + .map(file -> getCanonicalName(file.getName())) + .toArray(String[]::new); + } + + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getFilesystemName(java.lang.String) + */ + public String[] getFilesystemName(String fieldName) { + return uploadedFiles.getOrDefault(fieldName, Collections.emptyList()).stream() + .map(UploadedFile::getAbsolutePath) + .toArray(String[]::new); + } + + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getParameter(java.lang.String) + */ + public String getParameter(String name) { + List<String> paramValue = parameters.getOrDefault(name, Collections.emptyList()); + if (!paramValue.isEmpty()) { + return paramValue.get(0); + } + + return null; + } + + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getParameterNames() + */ + public Enumeration<String> getParameterNames() { + return Collections.enumeration(parameters.keySet()); + } + + /* (non-Javadoc) + * @see org.apache.struts2.dispatcher.multipart.MultiPartRequest#getParameterValues(java.lang.String) + */ + public String[] getParameterValues(String name) { + return parameters.getOrDefault(name, Collections.emptyList()) + .toArray(String[]::new); Review Comment: @criderp please register this bug in [JIRA](https://issues.apache.org/jira/browse/WW), thanks! Issue Time Tracking ------------------- Worklog Id: (was: 920261) Time Spent: 11h 20m (was: 11h 10m) > Upgrade Commons Fileupload to FileUpload Jakarta Servlet 6 > ---------------------------------------------------------- > > Key: WW-5388 > URL: https://issues.apache.org/jira/browse/WW-5388 > Project: Struts 2 > Issue Type: Improvement > Components: Core > Reporter: Lukasz Lenart > Assignee: Lukasz Lenart > Priority: Major > Fix For: 7.0.0 > > Time Spent: 11h 20m > Remaining Estimate: 0h > > There is a new version of JakartaEE FileUpload > {code:xml} > <dependency> > <groupId>org.apache.commons</groupId> > <artifactId>commons-fileupload2-jakarta-servlet6</artifactId> > <version>2.0.0-M2</version> > </dependency> > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)