Uploaded image for project: 'Weld'
  1. Weld
  2. WELD-1142

WeldListener prematurely deactivates all contexts and conversations in portlet environment

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Obsolete
    • Icon: Major Major
    • None
    • 1.1.8.Final
    • Infrastructure
    • None

      Background:

      In a servlet-environment, the FacesServlet does the following all one one shot:

      facesLifecycle.execute(facesContext);
      facesLifecycle.render(facesContext);

      But in a portlet environment, the JSR-329 spec requires our bridges to split that up:

      facesLifecycle.execute(facesContext); // ACTION_PHASE of the portlet lifecycle
      facesLifecycle.render(facesContext); // RENDER_PHASE of the portlet lifecycle

      The problem is that WeldListener.requestDestroyed(ServletRequestEvent) method is getting called after the ACTION_PHASE. So by the time the RENDER_PHASE runs, all the contexts and conversations have been deactivated.

      Perhaps the WeldListener could check for the "javax.portlet.faces.phase" request attribute, and only do its job when the value returned is "RENDER_PHASE". See: http://myfaces.apache.org/portlet-bridge/2.0/api/apidocs/javax/portlet/faces/Bridge.PortletPhase.html#RENDER_PHASE

            Unassigned Unassigned
            ngriffin7a_jira Neil Griffin (Inactive)
            Votes:
            8 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: