<div dir="ltr">I&#39;m using CDI 2.0 and Weld 3.0.0.CR2 in &quot;SE mode&quot;.<div><br></div><div>If I fire an asynchronous event without any special notification options, my understanding is that the container will arrange for that event to be delivered to asynchronous observers.</div><div><br></div><div>Is (appropriate) asynchronous observer method invocation guaranteed to happen at some point?  Section 10.2.2 seems to hint that it is:</div><div><br></div><div>&quot;Event fired [sic] with the fireAsync() method is [sic] fired asynchronously. <b>All the resolved asynchronous observers</b> (as defined in Observer resolution) <b>are called</b> in one or more different threads.&quot;<br></div><div><br></div><div>To me, this says that if I use fireAsync() to fire an event, then if I have a (resolved) asynchronous observer method for it it will be notified before the container closes no matter what.</div><div><br></div><div>(I believe I am observing a race condition somewhere in here that might show that Weld&#39;s default asynchronous event delivery machinery does not actually get around to delivering the event I&#39;ve queued up before the container closes.  Sometimes the event is received, sometimes it is not.  Obviously if there is no such guarantee this could be permitted behavior.)</div><div><br></div><div>Best,</div><div>Laird</div></div>