markt 2005/05/05 13:52:37
Modified: catalina/src/share/org/apache/catalina/ssi
ResponseIncludeWrapper.java SSIFilter.java
Log:
Improve the SSIFilter's handling of pages with non-default encoding.
Revision Changes Path
1.7 +6 -2
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ssi/ResponseIncludeWrapper.java
Index: ResponseIncludeWrapper.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ssi/ResponseIncludeWrapper.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ResponseIncludeWrapper.java 23 Apr 2005 10:22:37 -0000 1.6
+++ ResponseIncludeWrapper.java 5 May 2005 20:52:37 -0000 1.7
@@ -12,6 +12,7 @@
import java.io.IOException;
+import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
@@ -94,7 +95,10 @@
public PrintWriter getWriter() throws java.io.IOException {
if (servletOutputStream == null) {
if (printWriter == null) {
- printWriter = new PrintWriter(captureServletOutputStream);
+ setCharacterEncoding(getCharacterEncoding());
+ printWriter = new PrintWriter(
+ new OutputStreamWriter(captureServletOutputStream,
+ getCharacterEncoding()));
}
return printWriter;
}
1.2 +5 -5
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ssi/SSIFilter.java
Index: SSIFilter.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ssi/SSIFilter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SSIFilter.java 5 May 2005 17:30:46 -0000 1.1
+++ SSIFilter.java 5 May 2005 20:52:37 -0000 1.2
@@ -133,21 +133,21 @@
// is this an allowed type for SSI processing?
if (contentTypeRegEx.matcher(contentType).matches()) {
+ String encoding = res.getCharacterEncoding();
// set up SSI processing
SSIExternalResolver ssiExternalResolver =
new SSIServletExternalResolver(config.getServletContext(),
req,
- res, isVirtualWebappRelative, debug,
- res.getCharacterEncoding());
+ res, isVirtualWebappRelative, debug, encoding);
SSIProcessor ssiProcessor = new SSIProcessor(ssiExternalResolver,
debug);
// prepare readers/writers
Reader reader =
- new InputStreamReader(new ByteArrayInputStream(bytes));
+ new InputStreamReader(new ByteArrayInputStream(bytes),
encoding);
ByteArrayOutputStream ssiout = new ByteArrayOutputStream();
PrintWriter writer =
- new PrintWriter(new OutputStreamWriter(ssiout));
+ new PrintWriter(new OutputStreamWriter(ssiout, encoding));
// do SSI processing
long lastModified = ssiProcessor.process(reader,
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]