ICEfaces
  1. ICEfaces
  2. ICE-3843

REGRESSION: Invoking SessionRenderer.render(String) from a non-JSF thread is not possible

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7.2 SP1, 1.8DR#2
    • Fix Version/s: 1.8RC2, 1.8
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      ICEfaces 1.7.2-SP1

      Description

      Invoking the SessionRenderer.render(String) method from a non-JSF thread logs a warning:

          WARNING: Render request done from non-JSF thread. Session(s) contained in group 'group1' did not receive a render.

        Issue Links

          Activity

          Hide
          Jack Van Ooststroom added a comment -

          This is a follow-up to ICE-3614

          Show
          Jack Van Ooststroom added a comment - This is a follow-up to ICE-3614
          Hide
          Jack Van Ooststroom added a comment -

          When the RenderManager is instantiated through the MainServlet, the ServletContext instance is set on the RenderManager. Whenever a render is invoked from a non-JSF thread, the RenderManager instance has the correct ServletContext instance. This instance in combination with the session ID can be used to retrieve the correct MainSessionBooundServlet from the SessionDispatcher. This will allow any sessions in the group to have its render invoked from a non-JSF thread.

          Show
          Jack Van Ooststroom added a comment - When the RenderManager is instantiated through the MainServlet, the ServletContext instance is set on the RenderManager. Whenever a render is invoked from a non-JSF thread, the RenderManager instance has the correct ServletContext instance. This instance in combination with the session ID can be used to retrieve the correct MainSessionBooundServlet from the SessionDispatcher. This will allow any sessions in the group to have its render invoked from a non-JSF thread.
          Hide
          Jack Van Ooststroom added a comment -

          Upon starting ICEfaces the ServletContext is set on the RenderManager. The GroupAsyncRenderer can use this, even from a non-JSF thread, to retrieve the MainSessionBoundServlet from which it can get the Views. Marking this one as FIXED.

          Show
          Jack Van Ooststroom added a comment - Upon starting ICEfaces the ServletContext is set on the RenderManager. The GroupAsyncRenderer can use this, even from a non-JSF thread, to retrieve the MainSessionBoundServlet from which it can get the Views. Marking this one as FIXED.

            People

            • Assignee:
              Unassigned
              Reporter:
              Jack Van Ooststroom
            • Votes:
              6 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: