[cdi-dev] Can an observer be both async and sync?

Tomas Remes tremes at redhat.com
Mon Mar 6 01:55:39 EST 2017

Hi John,

No it shouldn't. The problematic and confusing case would be when there is some other param (injection point) in this observer method and this param resolves to let's say @SessionScoped bean. How does it work then? Once it fails (since there's no context propagation for async event), once it works (sync event)? Therefore this was forbidden.


----- Original Message -----
From: "John Ament" <john.ament at spartasystems.com>
To: "cdi-dev" <cdi-dev at lists.jboss.org>
Sent: Monday, March 6, 2017 1:42:09 AM
Subject: [cdi-dev] Can an observer be both async and sync?

Section 10.4.4 has the following section which got me thinking 

public void refreshOnDocumentUpdate(@Observes(notifyObserver=IF_EXISTS) @Updated Document doc) { ... } 

public void asyncRefreshOnDocumentUpdate(@ObservesAsync(notifyObserver=IF_EXISTS) @Updated Document doc) { ... } 

I'm wondering, is it OK to have an observer method defined like this? 

public void asyncRefreshOnDocumentUpdate( @Observes(notifyObserver=IF_EXISTS) @ObservesAsync(notifyObserver=IF_EXISTS) @Updated Document doc) { ... } 

I don't see anything against this in the spec, but I suspect most people are going to think this shouldn't work. So I'm asking the question - should it work? 


NOTICE: This e-mail message and any attachments may contain confidential, proprietary, and/or privileged information which should be treated accordingly. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this message, and destroy all physical and electronic copies. Thank you. 

cdi-dev mailing list
cdi-dev at lists.jboss.org

Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (http://www.apache.org/licenses/LICENSE-2.0.html). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.

Tomas Remes

More information about the cdi-dev mailing list