You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2012/05/08 15:24:33 UTC
svn commit: r1335508 -
/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/JsonResponseWriter.java
Author: lofwyr
Date: Tue May 8 13:24:33 2012
New Revision: 1335508
URL: http://svn.apache.org/viewvc?rev=1335508&view=rev
Log:
TOBAGO-1124: Problems with Mojarra 2.0 and higher
Modified:
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/JsonResponseWriter.java
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/JsonResponseWriter.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/JsonResponseWriter.java?rev=1335508&r1=1335507&r2=1335508&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/JsonResponseWriter.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/webapp/JsonResponseWriter.java Tue May 8 13:24:33 2012
@@ -17,8 +17,10 @@ package org.apache.myfaces.tobago.intern
* limitations under the License.
*/
+import org.apache.commons.lang.StringUtils;
import org.apache.myfaces.tobago.internal.ajax.AjaxInternalUtils;
import org.apache.myfaces.tobago.internal.util.FastStringWriter;
+import org.apache.myfaces.tobago.util.FacesVersion;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -55,6 +57,22 @@ public class JsonResponseWriter extends
}
@Override
+ public void write(char[] chars) throws IOException {
+ // XXX remove me later:
+ // this is a temporary workaround, should be removed after fixing the bug in Mojarra.
+ // http://java.net/jira/browse/JAVASERVERFACES-2411
+ // https://issues.apache.org/jira/browse/TOBAGO-1124
+ if (FacesVersion.isMojarra() && FacesVersion.supports20()) {
+ StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
+ if (stackTraceElements[2].getClassName().equals("com.sun.faces.renderkit.ServerSideStateHelper")) {
+ super.write(StringUtils.replace(new String(chars), "\"", "\\\""));
+ return;
+ }
+ }
+ super.write(chars);
+ }
+
+ @Override
public void writeJavascript(String script) throws IOException {
writeInternal(javascriptWriter, AjaxInternalUtils.encodeJavaScriptString(script));
}