You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2008/04/21 12:18:29 UTC
svn commit: r650083 - in
/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event:
DojoJSONServiceEventHandler.java JSONJavaEventHandler.java
JSONServiceEventHandler.java
Author: jleroux
Date: Mon Apr 21 03:18:20 2008
New Revision: 650083
URL: http://svn.apache.org/viewvc?rev=650083&view=rev
Log:
A patch from Nicolas Mervaillie "JSON event handlers send truncated response when it contains accented chars" (https://issues.apache.org/jira/browse/OFBIZ-1752) - OFBIZ-1752
Modified:
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/DojoJSONServiceEventHandler.java
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/JSONJavaEventHandler.java
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/JSONServiceEventHandler.java
Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/DojoJSONServiceEventHandler.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/DojoJSONServiceEventHandler.java?rev=650083&r1=650082&r2=650083&view=diff
==============================================================================
--- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/DojoJSONServiceEventHandler.java (original)
+++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/DojoJSONServiceEventHandler.java Mon Apr 21 03:18:20 2008
@@ -19,6 +19,7 @@
package org.ofbiz.webapp.event;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.util.Enumeration;
import java.util.HashMap;
@@ -118,7 +119,12 @@
String htmlJsonStr = "<html><head></head><body><textarea style=\"width: 100%%; height: 100px;\">" + jsonStr + "</textarea></body></html>";
// set the X-JSON content type
response.setContentType("text/html");
- response.setContentLength(htmlJsonStr.length());
+ // jsonStr.length is not reliable for unicode characters
+ try {
+ response.setContentLength(jsonStr.getBytes("UTF8").length);
+ } catch (UnsupportedEncodingException e) {
+ throw new EventHandlerException("Problems with Json encoding", e);
+ }
// return the JSON String
Writer out;
Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/JSONJavaEventHandler.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/JSONJavaEventHandler.java?rev=650083&r1=650082&r2=650083&view=diff
==============================================================================
--- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/JSONJavaEventHandler.java (original)
+++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/JSONJavaEventHandler.java Mon Apr 21 03:18:20 2008
@@ -19,6 +19,7 @@
package org.ofbiz.webapp.event;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.util.Enumeration;
import java.util.Map;
@@ -61,7 +62,12 @@
// set the X-JSON content type
response.setContentType("application/x-json");
- response.setContentLength(jsonStr.length());
+ // jsonStr.length is not reliable for unicode characters
+ try {
+ response.setContentLength(jsonStr.getBytes("UTF8").length);
+ } catch (UnsupportedEncodingException e) {
+ throw new EventHandlerException("Problems with Json encoding", e);
+ }
// return the JSON String
Writer out;
Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/JSONServiceEventHandler.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/JSONServiceEventHandler.java?rev=650083&r1=650082&r2=650083&view=diff
==============================================================================
--- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/JSONServiceEventHandler.java (original)
+++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/JSONServiceEventHandler.java Mon Apr 21 03:18:20 2008
@@ -19,6 +19,7 @@
package org.ofbiz.webapp.event;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.util.Enumeration;
import java.util.Map;
@@ -61,7 +62,12 @@
// set the X-JSON content type
response.setContentType("application/x-json");
- response.setContentLength(jsonStr.length());
+ // jsonStr.length is not reliable for unicode characters
+ try {
+ response.setContentLength(jsonStr.getBytes("UTF8").length);
+ } catch (UnsupportedEncodingException e) {
+ throw new EventHandlerException("Problems with Json encoding", e);
+ }
// return the JSON String
Writer out;