Uploaded image for project: 'CDI Specification Issues'
  1. CDI Specification Issues
  2. CDI-354

Inappropriate payload of the @Initialized(ConversationScoped.class) event

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Blocker
    • Resolution: Done
    • 1.1.PFD
    • 1.1.FD
    • Contexts
    • None

    Description

      An event with qualifier @Initialized(ConversationScoped.class) is fired when the conversation context is initialized
      and an event with qualifier @Destroyed(ConversationScoped.class) is fired when the conversation is destroyed.

      The event payload is:
      • the conversation id if the conversation context is destroyed and is not associated with a current Servlet request, or
      • the ServletRequestEvent if the application is a web application deployed to a Servlet container, or
      • any java.lang.Object for other types of application.

      The conversation context is supposed to be activated in a container-provided filter with the name "CDI Conversation Filter". A Servlet Filter itself does not have access to a ServletRequestEvent instance (that is only available to ServletRequestListeners). Therefore, the implementation would either have to re-create the instance by combining ServletRequest and ServletContext or propagate the ServletRequestEvent from a ServletRequestListener.

      From an application point of view, ServletRequest is the only interesting property of ServletRequestEvent anyway. Therefore, I suggest to change the wording of the spec to specify ServletRequest (or HttpServletRequest) as the payload of @Initialized(ConversationScoped.class) and @Destroyed(ConversationScoped.class) events.

      Attachments

        Activity

          People

            pmuiratbleepbleep Pete Muir
            rhn-engineering-jharting Jozef Hartinger
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: