You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Ramon Casha (JIRA)" <de...@myfaces.apache.org> on 2006/02/17 09:10:57 UTC
[jira] Created: (MYFACES-1130) regression: Since 1.1.1, JSFs can't
send raw data to response
regression: Since 1.1.1, JSFs can't send raw data to response
-------------------------------------------------------------
Key: MYFACES-1130
URL: http://issues.apache.org/jira/browse/MYFACES-1130
Project: MyFaces
Type: Bug
Versions: Nightly
Reporter: Ramon Casha
Since v1.1.1, it is not possible for a JSF page to send raw bytes to the response, such as a PDF from JasperReports, because bytes >127 are always converted to numeric entities even in raw data sent to response.getOutputStream(). Ideally, such character translation should only occur on the Writers, not on the OutputStreams, and/or only when the response's contentType is of an html/xml type.
Error is caused in: org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(request, response, chain)
Recommended solution: if response content type is not a text type (eg, "application/pdf"), make no attempt to encode bytes sent directly to outputstream.
Workaround: in the doFilter method, after the extendedResponse.finishResponse call, if the entendedResponse's contenttype was set to a non-text type, send the output directly without any translation. As a stop-gap solution I did this:
if(extendedResponse.getContentType().contains("pdf")) {
servletResponse.getOutputStream().write( extendedResponse.getBytes() );
return;
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira