[ https://issues.apache.org/jira/browse/MYFACES-3412?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13159697#comment-13159697 ]
Leonardo Uribe commented on MYFACES-3412: ----------------------------------------- The problem is to render the markup for an ajax request two ResponseWriters comes into play: org.apache.myfaces.shared.renderkit.html.HtmlResponseWriterImpl org.apache.myfaces.context.PartialResponseWriterImpl PartialResponseWriter wraps HtmlResponseWriterImpl. JSF 2.0 spec section 13.4.4.1 says this: "... JavaServer Faces provides javax.faces.context.PartialResponseWriter to ensure the Ajax response that is written follows the standard format as specified in Section 1.3 “XML Schema Definition for Partial Responses”. Implementations must take care to properly handle nested CDATA sections when writing the response. PartialResponseWriter decorates an existing ResponseWriter implementation by extending javax.faces.context.ResponseWriterWrapper ..." Which seems obvious, now take a look at section 13.4.4 "... The response should be in a common format so JavaScript clients can interpret the markup in a consistent way - an important requirement for component compatability. The agreed upon format and content type for the partial response is XML. This means there should be a ResponseWriter suitable for writing the response in XML ..." With this two descriptions we can conclude that MYFACES-3339 is a bug and needs to be fixed. Historically, there was some issues on both ResponseWriter implementations, and the old code was a workaround. But later after solve issues we found the right "combination". Now take a look at section 8.1, in the part that talks about createResponseWriter: "... The contentTypeList parameter is an "Accept header style" list of content types for this response, or null if the RenderKit should choose the best fit. [P1-start-contentTypeList]The RenderKit must support a value for the contentTypeList argument that comes straight from the Accept HTTP header, and therefore requires parsing according to the specification of the Accept header.[P1-end] Please see Section 14.1 of RFC 2616 (the HTTP 1.1 RFC) for the specification of the Accept header. ..." The same description is on the javadoc and basically it means if no contentTypeList the RenderKit should choose the best fit but later says derive it from Accept HTTP heade. Since the header sent by primefaces is: Accept application/xml, text/xml, */*; q=0.01 And HtmlRenderKit has two modes xhtml and html, the best match is xml. In theory the client side is the one responsible to send the proper header, because in that place it is possible to know which contentType when the page was rendered at first. Since this behavior is specified by the spec, we can't change that part. Since there is a valid workaround adding a RenderKit wrapper, create a config param doesn't sound good. It is true send <!-- --> is valid, but according to the spec text/html should be sent into accept header so HtmlResponseWriterImpl could choose the right match. Looking more carefully, maybe the problem is we are using xhtml mode for application/xml, text/xml, but it should be only used if Accept header is application/xhtml+xml. I'll check it with more care to see if we have a problem here. > updated AJAX values sometimes delete other elements > --------------------------------------------------- > > Key: MYFACES-3412 > URL: https://issues.apache.org/jira/browse/MYFACES-3412 > Project: MyFaces Core > Issue Type: Bug > Affects Versions: 2.0.10, 2.1.4 > Reporter: Mark Struberg > Assignee: Werner Punz > Attachments: ajaxbug.zip > > > The attached examples shows a problem I face after updating to the latest > 2.0.10/11 and 2.1.4/5 MyFaces versions. > I have 2 primefaces date pickers inside a h:panelGroup. Both date pickers > create ajax requests and refresh their values. If you click one of them (both > update the whole panelGroup), the 2nd date picker disapears. > This might have something to do with the AJAX js rework? > I can easily work around this issue, but I'm not sure which other problems > might arise as well, thus we better fix this -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira