Author: remy.maucherat(a)jboss.com
Date: 2013-04-02 08:36:25 -0400 (Tue, 02 Apr 2013)
New Revision: 2179
Modified:
branches/8.0.x/src/main/java/org/apache/catalina/connector/Request.java
Log:
Align with Tomcat's array list to allow using the same part name multiple times since
it is not really known if it is allowed or not
(but getPart(String) will return the first one, only the full iteration allows accessing
the others).
Modified: branches/8.0.x/src/main/java/org/apache/catalina/connector/Request.java
===================================================================
--- branches/8.0.x/src/main/java/org/apache/catalina/connector/Request.java 2013-03-25
16:18:31 UTC (rev 2178)
+++ branches/8.0.x/src/main/java/org/apache/catalina/connector/Request.java 2013-04-02
12:36:25 UTC (rev 2179)
@@ -380,7 +380,7 @@
/**
* Parts associated with the request.
*/
- protected Map<String, Part> parts = null;
+ protected Collection<Part> parts = null;
/**
@@ -2923,7 +2923,7 @@
protected void parseMultipart()
throws IOException, ServletException {
- parts = Collections.emptyMap();
+ parts = Collections.emptyList();
if (context == null)
return;
@@ -2974,14 +2974,14 @@
upload.setFileSizeMax(config.getMaxFileSize());
upload.setSizeMax(config.getMaxRequestSize());
- parts = new HashMap<String, Part>();
+ parts = new ArrayList<Part>();
try {
for (FileItem fileItem : upload.parseRequest(getRequest())) {
if (fileItem.getName() == null) {
coyoteRequest.getParameters().addParameterValues
(fileItem.getFieldName(), new String[] {fileItem.getString()});
}
- parts.put(fileItem.getFieldName(), new StandardPart(fileItem, config));
+ parts.add(new StandardPart(fileItem, config));
}
} catch(FileSizeLimitExceededException e) {
throw MESSAGES.multipartProcessingFailed(e);
@@ -3287,7 +3287,15 @@
if (parts == null) {
parseMultipart();
}
- return parts.get(name);
+ Collection<Part> c = getParts();
+ Iterator<Part> iterator = c.iterator();
+ while (iterator.hasNext()) {
+ Part part = iterator.next();
+ if (name.equals(part.getName())) {
+ return part;
+ }
+ }
+ return null;
}
@@ -3295,7 +3303,7 @@
if (parts == null) {
parseMultipart();
}
- return parts.values();
+ return parts;
}
Show replies by date