[ 
http://issues.apache.org/jira/browse/MYFACES-605?page=comments#action_12330971 
] 

Mike Kienenberger commented on MYFACES-605:
-------------------------------------------

Tanju,

Thanks for taking the time to read and comment on this issue.

I hadn't consulted the spec, and foolishly assumed that a
responseStream/responseWriter was available during the
invokeApplication phase.

It's now clear to me that trying to generate non-JSF response content is
difficult to do cleanly, despite the incorrect examples provided
elsewhere :)

I'm going to cheat and just continue to retrieve the responseStream
from my HttpResponse directly since it seems like less of a hack than
trying to delay my response to a phase that should never be called.

Please close this issue as invalid or won't fix.

> FacesContext.getResponseStream/getResponseWriter unimplemented
> --------------------------------------------------------------
>
>          Key: MYFACES-605
>          URL: http://issues.apache.org/jira/browse/MYFACES-605
>      Project: MyFaces
>         Type: Bug
>   Components: Implementation
>     Versions: 1.1.1
>     Reporter: Mike Kienenberger
>  Attachments: ServletFacesContextImpl.java.patch.txt
>
> I'm trying to generate a downloadable file link, and I'm using:
>         FacesContext facesContext = FacesContext.getCurrentInstance();
>         OutputStream responseStream = facesContext.getResponseStream();
> but responseStream is coming back null.
> A search through the code seems to indicate that the only thing to call 
> ServletFacesContextImpl.setResponseStream is 
> FacesContextWrapper.setResponseStream(), and nothing calls this method.
> The same thing appears to be true for responseWriter.
> It looks like these methods should be delegating to the ExternalContext 
> rather than holding local copies of the values, especially since the external 
> context has valid references.
> facesContext= ServletFacesContextImpl  (id=117)
>       _externalContext= ServletExternalContextImpl  (id=122)
>               _servletResponse= ExtensionsResponseWrapper  (id=157)
>                       printWriter= null
>                       response= ServletHttpResponse  (id=165)
>                       stream= ByteArrayOutputStream  (id=167)
>       _renderResponse= false
>       _responseComplete= false
>       _responseStream= null
>       _responseWriter= null
> However, I'm not sure the best way of doing this.   One way would be to 
> typecast ExternalContext to either a ServletExternalContextImpl or a 
> PortletExternalContextImpl and follow the chain of objects.
> I can create a patch to do this if there's confirmation that this is the best 
> way to go about it.

-- 
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

Reply via email to