Author: simoneg
Date: Wed Dec  9 15:00:26 2009
New Revision: 888821

URL: http://svn.apache.org/viewvc?rev=888821&view=rev
Log:
LABS-380 : Fixes on file handling at request parsing level

Modified:
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/OnDemandBinder.java

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/OnDemandBinder.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/OnDemandBinder.java?rev=888821&r1=888820&r2=888821&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/OnDemandBinder.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/utils/OnDemandBinder.java
 Wed Dec  9 15:00:26 2009
@@ -45,6 +45,7 @@
        private Map<String,String> newCookies = null;
        
        private Map<String, Object> unconvertedSession = new HashMap<String, 
Object>();
+       private Map<String,String[]> allparams = null;
        
        public enum Interaction {
                session,
@@ -82,8 +83,9 @@
        }
 
        private Object fetchAllParams() {
+               if (allparams != null) return allparams;
                if (uploads == null) {
-                       return req.getParameterMap();
+                       allparams = req.getParameterMap();
                } else {
                        Map<String, String[]> params = new HashMap<String, 
String[]>();
                        for (Map.Entry<String, FileItem[]> entry : 
uploads.entrySet()) {
@@ -93,9 +95,11 @@
                                        if (items[0].isFormField()) {
                                                vals[i] = items[i].getString();
                                        } else {
+                                               if (items[i].getSize() == 0) 
continue;
                                                File f;
                                                try {
                                                        f = 
File.createTempFile("magma_upload", ".raw");
+                                                       f.deleteOnExit();
                                                        items[i].write(f);
                                                } catch (Exception e) {
                                                        throw new 
MagmaException(e, "Error saving temporary uploaded file");
@@ -103,13 +107,14 @@
                                                String origname = 
items[i].getName();
                                                origname = 
origname.replaceAll("\\\\", "/");
                                                String[] split = 
origname.split("/");
-                                               vals[i] = split[split.length - 
1] + "/" + f.getAbsolutePath();
+                                               vals[i] = "FILE " + 
split[split.length - 1] + ":" + f.getAbsolutePath();
                                        }
                                }
                                params.put(entry.getKey(), vals);
                        }
-                       return params;
+                       allparams = params;
                }
+               return allparams;
        }
 
        private Object fetchRequest(String rawname, Class type) {



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to