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