title: @Asynchronous CDI Events and an @Observes method in @Named bean
body: <p>I have CDI Events in place to notify my JSF application of progress from EJB processes. The code works fine when everything is synchronous.</p>
  
  <pre><code>@Stateless
  public class MySessionBean implements Serializable {
  
      @Inject
      @ProcessEvent
      Event&lt;ProcessEvent&gt; processEvent; // Also tried to use BeanManager
  
      @Asynchronous // This annotation breaks my code
      public void runLongProcess() {
          processEvent.fire(new ProcessEvent());
      }
  
  }
  </code></pre>
  
  <p>.</p>
  
  <pre><code>@Named
  @ViewScoped
  public class ManagedBean implements Serializable {
  
      @EJB
      MySessionBean sessionBean;
  
      public void runProcess () {
          sessionBean.runLongProcess();
      }
  
      @Asynchronous // This annotation doesn't work
      public void onEvent(@Observes @ProcessEvent ProcessEvent event){
          LOGGER.log(Level.INFO, "Event was received"); // Never called
      }
  }
  </code></pre>
  
  <p>If I use an <code>@Asychronous</code> annotation on <code>runLongProcess()</code>, the JSF <code>@Observer</code> method is never called.</p>
  
  <p>How can I achieve this functionality ?</p>
  
  <p>JSF 2.2
  Glassfish 3.1
  JEE 7
  Java 8
  Omnifaces 2.3</p>