Details
Description
I discovered this problem after Mircea fixed ICE-6509. To make a long story short, the PortletFaces Bridge has it's own HTML RenderKit so that it can introduce a ResponseWriter:
http://svn.portletfaces.org/svn/portletfaces/bridge/portletfaces-bridge-impl/trunk/src/main/java/org/portletfaces/bridge/renderkit/bridge/ResponseWriterBridgeImpl.java
The purpose of the ResponseWriterBridgeImpl class is explained in the class header JavaDoc, but again, to make things short, it has to filter partial updates or else the Mojarra jsf.js code will perform a DOM replacement of the <body>...</body> when it sees javax.faces.ViewRoot.
The problem is that the ICEfaces DOMPartialViewContext is not respecting the RenderKit chain-of-responsibility when writing partial updates to the response. That means that the ResponseWriterBridgeImpl class is getting bypassed, and ICEfaces is writing partial updates directly to the response.
I've attached a patch that fixes this problem.
BTW, I think this patch will address the comment that I see a couple of times in DOMPartialViewContext.java:
//TODO: need to revisit the strategy for getting the "raw" output writer directly
http://svn.portletfaces.org/svn/portletfaces/bridge/portletfaces-bridge-impl/trunk/src/main/java/org/portletfaces/bridge/renderkit/bridge/ResponseWriterBridgeImpl.java
The purpose of the ResponseWriterBridgeImpl class is explained in the class header JavaDoc, but again, to make things short, it has to filter partial updates or else the Mojarra jsf.js code will perform a DOM replacement of the <body>...</body> when it sees javax.faces.ViewRoot.
The problem is that the ICEfaces DOMPartialViewContext is not respecting the RenderKit chain-of-responsibility when writing partial updates to the response. That means that the ResponseWriterBridgeImpl class is getting bypassed, and ICEfaces is writing partial updates directly to the response.
I've attached a patch that fixes this problem.
BTW, I think this patch will address the comment that I see a couple of times in DOMPartialViewContext.java:
//TODO: need to revisit the strategy for getting the "raw" output writer directly
Removing custom getResponseWriter() behavior for improved delegation to the RenderKit and ResponseWriter stack.