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;