1.1 restoration
[mir.git] / source / mir / util / HTTPParsedRequest.java
index 3ca02f1..3d9d96f 100755 (executable)
  */
 package mir.util;
 
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import javax.servlet.http.HttpServletRequest;
-
 import mir.log.LoggerWrapper;
-
+import org.apache.commons.fileupload.DiskFileUpload;
 import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileUpload;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
 
 public class HTTPParsedRequest {
   static final String MULTIPART_FORMDATA_CONTENTTYPE = "multipart/form-data";
@@ -52,23 +44,21 @@ public class HTTPParsedRequest {
   private int maxUploadSize;
   private String tempDir;
 
-  private Map stringValues;
-  private Map listValues;
+  private Map parameterStringValues;
+  private Map parameterListValues;
   private List files;
 
-  private LoggerWrapper logger;
+  private LoggerWrapper logger = new LoggerWrapper("Utility.HTTPParsedRequest");
 
   public HTTPParsedRequest(HttpServletRequest aRequest, String anEncoding, int aMaxUploadSize, String aTempDir) throws UtilExc, UtilFailure {
-    logger = new LoggerWrapper("Utility.HTTPParsedRequest");
-
     request = aRequest;
     encoding = anEncoding;
     maxUploadSize = aMaxUploadSize;
     tempDir = aTempDir;
 
-    stringValues = new HashMap();
-    listValues = new HashMap();
-    files = new Vector();
+    parameterStringValues = new HashMap();
+    parameterListValues = new HashMap();
+    files = new ArrayList();
 
     parseRequest(aRequest);
   }
@@ -82,7 +72,11 @@ public class HTTPParsedRequest {
   }
 
   public String getParameter(String aName) {
-    return (String) stringValues.get(aName);
+    return (String) parameterStringValues.get(aName);
+  }
+
+  public Collection getParameterNames() {
+    return parameterStringValues.keySet();
   }
 
   public String getHeader(String aName) {
@@ -94,10 +88,10 @@ public class HTTPParsedRequest {
   }
 
   public List getParameterList(String aName) {
-    if (listValues.containsKey(aName))
-      return (List) listValues.get(aName);
+    if (parameterListValues.containsKey(aName))
+      return (List) parameterListValues.get(aName);
     else
-      return new Vector();
+      return Collections.EMPTY_LIST;
   }
 
   protected void parseRequest(HttpServletRequest aRequest) throws UtilExc, UtilFailure {
@@ -111,9 +105,9 @@ public class HTTPParsedRequest {
       while (e.hasMoreElements()) {
         String name = (String) e.nextElement();
 
-        stringValues.put(name, aRequest.getParameter(name));
-        List listValue = new Vector(Arrays.asList(aRequest.getParameterValues(name)));
-        listValues.put(name, listValue);
+        parameterStringValues.put(name, aRequest.getParameter(name));
+        List listValue = new ArrayList(Arrays.asList(aRequest.getParameterValues(name)));
+        parameterListValues.put(name, listValue);
       }
 
       if (parts.size()>0 && ((String) parts.get(0)).trim().toLowerCase().equals(MULTIPART_FORMDATA_CONTENTTYPE)) {
@@ -129,10 +123,11 @@ public class HTTPParsedRequest {
 
   protected void parseMultipartRequest() throws UtilExc, UtilFailure {
     try {
-      FileUpload upload = new FileUpload();
+      DiskFileUpload upload = new DiskFileUpload();
 
+      upload.setSizeThreshold(100000);
       upload.setSizeMax(maxUploadSize);
-      upload.setSizeThreshold(4096);
+      upload.setHeaderEncoding(encoding);
       upload.setRepositoryPath(tempDir);
 
       List items = upload.parseRequest(request);
@@ -142,14 +137,14 @@ public class HTTPParsedRequest {
         FileItem item = (FileItem) i.next();
 
         if (item.isFormField()) {
-          if (!stringValues.containsKey(item.getName())) {
-            stringValues.put(item.getFieldName(), item.getString(encoding));
+          if (!parameterStringValues.containsKey(item.getName())) {
+            parameterStringValues.put(item.getFieldName(), item.getString(encoding));
           }
 
-          List listValue = (List) listValues.get(item.getFieldName());
+          List listValue = (List) parameterListValues.get(item.getFieldName());
           if (listValue == null) {
-            listValue = new Vector();
-            listValues.put(item.getFieldName(), listValue);
+            listValue = new ArrayList();
+            parameterListValues.put(item.getFieldName(), listValue);
           }
           listValue.add(item.getString(encoding));
         }