Author: knopp
Date: Thu Sep 10 00:47:19 2009
New Revision: 813183

URL: http://svn.apache.org/viewvc?rev=813183&view=rev
Log:
implement fallback

Modified:
    
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/request/ServletWebRequest.java

Modified: 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/request/ServletWebRequest.java
URL: 
http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/request/ServletWebRequest.java?rev=813183&r1=813182&r2=813183&view=diff
==============================================================================
--- 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/request/ServletWebRequest.java
 (original)
+++ 
wicket/sandbox/knopp/experimental/wicket-ng/src/main/java/org/apache/wicket/request/request/ServletWebRequest.java
 Thu Sep 10 00:47:19 2009
@@ -30,7 +30,6 @@
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.request.RequestParameters;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.Url.QueryParameter;
@@ -38,6 +37,8 @@
 import org.apache.wicket.util.lang.Check;
 import org.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.string.Strings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * {...@link WebRequest} subclass that wraps a {...@link HttpServletRequest} 
object.
@@ -136,6 +137,7 @@
 
        private Map<String, List<StringValue>> postParameters = null;
        
+       @SuppressWarnings("unchecked")
        public Map<String, List<StringValue>> getPostParameters()
        {
                if (postParameters == null)
@@ -143,7 +145,6 @@
                        postParameters = new HashMap<String, 
List<StringValue>>();
                        try
                        {
-                               // TODO: Handle exception and fallback to 
HttpServletRequest#getParameter(...)
                                BufferedReader reader = 
getHttpServletRequest().getReader();
                                String value = Streams.readString(reader);
                                
@@ -164,7 +165,20 @@
                        }
                        catch (IOException e)
                        {
-                               throw new WicketRuntimeException(e);
+                               logger.warn("Error parsing request body for 
post parameters; Fallback to ServletRequest#getParameters().", e);
+                               for (String name : 
(List<String>)Collections.list(getHttpServletRequest().getParameterNames()))
+                               {
+                                       List<StringValue> list = 
postParameters.get(name);
+                                       if (list == null)
+                                       {
+                                               list = new 
ArrayList<StringValue>();
+                                               postParameters.put(name, list);
+                                       }
+                                       for (String value : 
getHttpServletRequest().getParameterValues(name))
+                                       {
+                                               
list.add(StringValue.valueOf(value));
+                                       }
+                               }
                        }
                        
                }
@@ -213,4 +227,5 @@
                return new Url(url);
        }
 
+       private static final Logger logger = 
LoggerFactory.getLogger(ServletWebRequest.class);
 }


Reply via email to