You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2007/12/22 05:18:34 UTC
svn commit: r606391 -
/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-components/src/main/java/org/apache/cocoon/servletservice/postable/components/ServletServiceSerializer.java
Author: vgritsenko
Date: Fri Dec 21 20:18:34 2007
New Revision: 606391
URL: http://svn.apache.org/viewvc?rev=606391&view=rev
Log:
ServletServiceSerializer was copying unicode (see /catalog and /i18n samples) character data
into output stream using platform encoding (ISO-8859-1), and crashing hard after that (duh!).
Quick fix - convert data into UTF-8.
Modified:
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-components/src/main/java/org/apache/cocoon/servletservice/postable/components/ServletServiceSerializer.java
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-components/src/main/java/org/apache/cocoon/servletservice/postable/components/ServletServiceSerializer.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-components/src/main/java/org/apache/cocoon/servletservice/postable/components/ServletServiceSerializer.java?rev=606391&r1=606390&r2=606391&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-components/src/main/java/org/apache/cocoon/servletservice/postable/components/ServletServiceSerializer.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-components/src/main/java/org/apache/cocoon/servletservice/postable/components/ServletServiceSerializer.java Fri Dec 21 20:18:34 2007
@@ -17,7 +17,9 @@
package org.apache.cocoon.servletservice.postable.components;
import java.io.IOException;
+import java.io.OutputStreamWriter;
import java.io.StringReader;
+import java.io.Writer;
import java.util.Map;
import org.apache.avalon.framework.parameters.ParameterException;
@@ -101,12 +103,19 @@
} catch (ProcessingException e) {
throw new SAXException("Exception occured while serializing content of sax buffer", e);
}
- try {
- IOUtils.copy(new StringReader(serializedXML), servletSource.getOutputStream());
- } catch (IOException e) {
+
+ try {
+ // TODO Improve this quick fix; it is better for Postable to provide Writer instead.
+ // TODO Need to specify
+ // Convert output stream to writer to specify UTF-8 encoding.
+ Writer out = new OutputStreamWriter(servletSource.getOutputStream(), "UTF-8");
+ IOUtils.copy(new StringReader(serializedXML), out);
+ out.flush();
+ } catch (IOException e) {
throw new SAXException("Exception occured while writing to the output stream of source '" + servletSource.getURI() + "'", e);
- }
- try {
+ }
+
+ try {
//here real mime type is set, see Spring bean's configuration comment
response.setHeader("Content-Type", servletSource.getMimeType());