Is there a way to know if a state is active without catching ContextNotActiveException?

Viewed 2113

I would like to know if the RequestScoped context is currently active in a method or not.

At the moment, here is what I do :

@Inject private BeanManager beanManager;

public boolean isRequestScopeActive() {
    try {
        if (beanManager.getContext(RequestScoped.class).isActive()) {
            return true;
        } else {
            return false;
        }
    } catch (final ContextNotActiveException e) {
        return false;
    }
}

I think it's a bit heavy to catch a ContextNotActiveException just to know if a scope is active or not.

Do you have any better way to know the state (active or not) of a context in CDI ?

1 Answers
Related