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);
}