ICEfaces
  1. ICEfaces
  2. ICE-6610

DOMPartialViewContext is not respecting the RenderKit chain-of-responsibility when writing partial updates to the response

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0
    • Fix Version/s: 2.0.1
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      N/A

      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
      1. ICE-6610.patch
        5 kB
        Neil Griffin
      2. removebasic.patch
        3 kB
        Ted Goddard

        Activity

        Hide
        Adrian Gygax added a comment -

        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.

        Show
        Adrian Gygax added a comment - 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.
        Hide
        Ted Goddard added a comment -

        We are currently investigating a different approach with the goal of entirely eliminating the BasicResponseWriter by not creating a DOMResponseWriter except for component tree rendering.

        Show
        Ted Goddard added a comment - We are currently investigating a different approach with the goal of entirely eliminating the BasicResponseWriter by not creating a DOMResponseWriter except for component tree rendering.
        Hide
        Ted Goddard added a comment -

        Removing custom getResponseWriter() behavior for improved delegation to the RenderKit and ResponseWriter stack.

        Show
        Ted Goddard added a comment - Removing custom getResponseWriter() behavior for improved delegation to the RenderKit and ResponseWriter stack.

          People

          • Assignee:
            Ted Goddard
            Reporter:
            Neil Griffin
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: