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
Activity
Neil Griffin
created issue -
Neil Griffin
made changes -
Field | Original Value | New Value |
---|---|---|
Salesforce Case | [] | |
Component/s | Framework [ 10013 ] |
Neil Griffin
made changes -
Attachment | ICE-6610.patch [ 12897 ] |
Neil Griffin
made changes -
Assignee | Deryk Sinotte [ deryk.sinotte ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Fix Version/s | 2.0.1 [ 10255 ] |
Deryk Sinotte
made changes -
Assignee | Deryk Sinotte [ deryk.sinotte ] | Ted Goddard [ ted.goddard ] |
Ted Goddard
made changes -
Attachment | removebasic.patch [ 12950 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #24125 | Thu Mar 10 17:11:27 MST 2011 | ted.goddard | delegating PartialViewContext.getResponseWriter always ( |
Files Changed | ||||
MODIFY
/icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/impl/context/DOMPartialViewContext.java
MODIFY /icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/impl/renderkit/DOMRenderKit.java |
Ted Goddard
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
This patched solves our problems with navigation within Liferay. This patch + Mojarra 2.1.0 = Navigation works without problems outside Liferay as well as inside Liferay.