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