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: