You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by do...@apache.org on 2008/09/24 01:14:20 UTC
svn commit: r698398 - in /incubator/shindig/trunk/java/social-api/src:
main/java/org/apache/shindig/social/opensocial/service/
test/java/org/apache/shindig/social/opensocial/service/
Author: doll
Date: Tue Sep 23 16:14:19 2008
New Revision: 698398
URL: http://svn.apache.org/viewvc?rev=698398&view=rev
Log:
SHINDIG-577
The java social code now uses the servlet request char encoding when parsing out post bodies.
Modified:
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java
incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RestfulRequestItem.java
incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java
Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java?rev=698398&r1=698397&r2=698398&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/JsonRpcServlet.java Tue Sep 23 16:14:19 2008
@@ -74,7 +74,8 @@
setCharacterEncodings(servletRequest, servletResponse);
try {
- String content = IOUtils.toString(servletRequest.getReader());
+ String content = IOUtils.toString(servletRequest.getInputStream(),
+ servletRequest.getCharacterEncoding());
if ((content.indexOf('[') != -1) && content.indexOf('[') < content.indexOf('{')) {
// Is a batch
JSONArray batch = new JSONArray(content);
Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RestfulRequestItem.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RestfulRequestItem.java?rev=698398&r1=698397&r2=698398&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RestfulRequestItem.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/service/RestfulRequestItem.java Tue Sep 23 16:14:19 2008
@@ -71,7 +71,7 @@
try {
ServletInputStream is = servletRequest.getInputStream();
- postData = new String(IOUtils.toByteArray(is));
+ postData = IOUtils.toString(is, servletRequest.getCharacterEncoding());
} catch (IOException e) {
throw new RuntimeException("Could not get the post data from the request", e);
}
Modified: incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java?rev=698398&r1=698397&r2=698398&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java (original)
+++ incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/opensocial/service/JsonRpcServletTest.java Tue Sep 23 16:14:19 2008
@@ -29,11 +29,12 @@
import org.json.JSONArray;
import org.json.JSONObject;
-import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
-import java.io.StringReader;
+import java.io.InputStream;
+import java.io.ByteArrayInputStream;
import java.util.concurrent.Future;
+import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -231,9 +232,16 @@
EasyMock.reset(req, res, peopleHandler, activityHandler, injector, jsonConverter);
}
- private void setupRequest(String json)
- throws IOException {
- EasyMock.expect(req.getReader()).andStubReturn(new BufferedReader(new StringReader(json)));
+ private void setupRequest(String json) throws IOException {
+ final InputStream in = new ByteArrayInputStream(json.getBytes());
+ ServletInputStream stream = new ServletInputStream() {
+ @Override
+ public int read() throws IOException {
+ return in.read();
+ }
+ };
+
+ EasyMock.expect(req.getInputStream()).andStubReturn(stream);
EasyMock.expect(req.getMethod()).andStubReturn("POST");
EasyMock.expect(req.getAttribute(EasyMock.isA(String.class))).andReturn(FAKE_GADGET_TOKEN);
EasyMock.expect(req.getCharacterEncoding()).andStubReturn("UTF-8");