[ 
https://issues.apache.org/jira/browse/MYFACES-2142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12704714#action_12704714
 ] 

Curtiss Howard edited comment on MYFACES-2142 at 4/30/09 10:19 AM:
-------------------------------------------------------------------

Leonardo, I found the text in the spec that talks about this.  Section 2.2.6, 
last bullet:

"For partial requests, where partial view rendering is required, there must be 
no content written outside of the view
(outside f:view). Response writing must be disabled. Response writing must be 
enabled again at the start of
encodeBegin."

And I think it's better to extend HttpServletResponseWrapper because otherwise 
you have to implement all the methods in HttpServletResponse and back them with 
an existing writer... effectively duplicating the functionality of 
HttpServletResponseWrapper.  The root of the "unwrapping" problem is that 
ResponseSwitch extends ServletResponseWrapper, not HttpServletResponseWrapper 
and thus it can't be cast to HttpServletResponse.  I think merely fixing that 
oversight in how ResponseSwitch is defined would be a suitable fix.

      was (Author: curtiss):
    Leonardo, I found the text in the spec that talks about this.  Section 
2.2.6, last bullet:

"For partial requests, where partial view rendering is required, there must be 
no content written outside of the view
(outside f:view). Response writing must be disabled. Response writing must be 
enabled again at the start of
encodeBegin."

And I think it's better to extend HttpServletResponseWrapper because otherwise 
you have to implement all the methods in HttpServletResponse and back them with 
an existing writer... effectively duplicating the functionality of 
HttpServletResponseWrapper.
  
> ClassCastException in JspViewHandlerImpl: ResponseSwitch != 
> HttpServletResponse
> -------------------------------------------------------------------------------
>
>                 Key: MYFACES-2142
>                 URL: https://issues.apache.org/jira/browse/MYFACES-2142
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>            Reporter: Jan-Kees van Andel
>         Attachments: MYFACES-2142.patch
>
>
> While running the latest myfaces2 source code with a test JSP page, I've 
> encountered the following error.
> java.lang.ClassCastException: 
> org.apache.myfaces.context.servlet.ResponseSwitch cannot be cast to 
> javax.servlet.http.HttpServletResponse
>       at 
> org.apache.myfaces.application.jsp.JspViewHandlerImpl.buildView(JspViewHandlerImpl.java:487)
>       at 
> org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:343)
>       at 
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:45)
>       at 
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:167)
>       at 
> javax.faces.webapp.FacesServlet._handleStandardRequest(FacesServlet.java:428)
>       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:182)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> etc......
> As far as I can see, this is a bug, since there is an explicit cast to 
> HttpServletResponse and the given parameter is of type ResponseSwitch, which 
> is not a HttpServletResponse.
> It looks like a recent change...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to