Uploaded image for project: 'OpenWebBeans'
  1. OpenWebBeans
  2. OWB-1133

Container lifecycle events are observed by non-Extension classes

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.2.8
    • 1.6.0
    • Events
    • None

    Description

      Because of erroneus usages of method fireEvent (where fireLifecycleEvent should be) if a situation as described below holds, an error is generated.
      When:
      -bean A depends on bean B and C
      -bean A declares observer method with parameters @Observes Object event (which means, that it observes all events)

      There is (sometimes, it depends on a classpath) a deployment error because A cannot be built if B and C were not analyzed from the classpath. A should be build, because a containter wants to fire an event ProcessObserverMethod. The problem is, that this event is a lifecycle event and it should be never fired to bean A which is not Extension specialization (however v. 1.2.8 does it – incorrectly).

      The observation is done according to 11.5 of CDI 1.0 specs which clearly states that: "Observer methods of these events must belong to
      extensions". The events are Lifecycle events.

      AFAIK it is a problem in class org.apache.webbeans.util.WebBeansUtil, where methods firing lifecycle events (e.g fireProcessObservableMethodBeanEvent) uses method fireEvent instead of fireLifecycleEvent (from class BeanManagerImpl).

      Attachments

        Activity

          People

            struberg Mark Struberg
            droodev Andrzej K
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: