ICEfaces
  1. ICEfaces
  2. ICE-6881

delegate createActionURL to HttpServletResponse

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.8.2-EE-GA_P02
    • Fix Version/s: EE-1.8.2.GA_P03
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      ICEfaces

      Description

      Currently encodeActionURL is a pass-through in the Servlet case:

           public String encodeActionURL(String url) {
              return url;
           }

      This does not give the opportunity for Response wrappers to add functionality.

        Activity

        Hide
        Ted Goddard added a comment -

        Change checked in for ICE-6791 should resolve response staleness.

        Show
        Ted Goddard added a comment - Change checked in for ICE-6791 should resolve response staleness.
        Hide
        Ted Goddard added a comment -

        Stale responses are no longer present during user interaction, but are present during Ajax Push. The proposed technique to resolve will be as follows:

        Create a Servlet Filter to inject a FailSafeResponseWrapper. This must be in the Filter chain prior to the Seam Filters. The FailSafeResponseWrapper will allow encode*() to proceed using the Seam wrapper on the stale HttpServletResponse.

        Show
        Ted Goddard added a comment - Stale responses are no longer present during user interaction, but are present during Ajax Push. The proposed technique to resolve will be as follows: Create a Servlet Filter to inject a FailSafeResponseWrapper. This must be in the Filter chain prior to the Seam Filters. The FailSafeResponseWrapper will allow encode*() to proceed using the Seam wrapper on the stale HttpServletResponse.
        Hide
        Ted Goddard added a comment -

        The attached FailSafeResponseFilter wraps the Response in a version that does not throw an Exception when it has gone out of request processing scope. It must be added to the web.xml prior to the Seam Filter:

        <filter>
        <filter-name>FailSafe</filter-name>
        <filter-class>FailSafeResponseFilter</filter-class>
        </filter>

        <filter-mapping>
        <filter-name>FailSafe</filter-name>
        <url-pattern>/*</url-pattern>
        </filter-mapping>

        Since the specific failure seen by the customer has not been reproduced in the test application, the FailSafeResponseFilter contains substantial System.out output and is implemented in the default package so that it can be compiled directly within the "classes" directory or added to an existing project at the root level.

        Show
        Ted Goddard added a comment - The attached FailSafeResponseFilter wraps the Response in a version that does not throw an Exception when it has gone out of request processing scope. It must be added to the web.xml prior to the Seam Filter: <filter> <filter-name>FailSafe</filter-name> <filter-class>FailSafeResponseFilter</filter-class> </filter> <filter-mapping> <filter-name>FailSafe</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> Since the specific failure seen by the customer has not been reproduced in the test application, the FailSafeResponseFilter contains substantial System.out output and is implemented in the default package so that it can be compiled directly within the "classes" directory or added to an existing project at the root level.
        Hide
        Ted Goddard added a comment -

        Updated to include FailSafeRequestWrapper.

        Show
        Ted Goddard added a comment - Updated to include FailSafeRequestWrapper.
        Hide
        Ted Goddard added a comment -

        Configured via:

        <filter>
        <filter-name>FailSafe</filter-name>
        <filter-class>com.icesoft.faces.webapp.http.servlet.FailSafeResponseFilter</filter-class>
        </filter>

        <filter-mapping>
        <filter-name>FailSafe</filter-name>
        <url-pattern>/*</url-pattern>
        </filter-mapping>

        Show
        Ted Goddard added a comment - Configured via: <filter> <filter-name>FailSafe</filter-name> <filter-class>com.icesoft.faces.webapp.http.servlet.FailSafeResponseFilter</filter-class> </filter> <filter-mapping> <filter-name>FailSafe</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

          People

          • Assignee:
            Ted Goddard
            Reporter:
            Ted Goddard
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: