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

Container lifecycle events are observed by non-Extension classes

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.8
    • Fix Version/s: 1.6.0
    • Component/s: Events
    • Labels:
      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

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

              Dates

              • Created:
                Updated:
                Resolved: