Me gustaría saber si el contexto RequestScoped
está actualmente activo en un método o no.¿Hay alguna forma de saber si un estado está activo sin capturar ContextNotActiveException?
Por el momento, esto es lo que hago:
@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;
}
}
Creo que es un poco pesado para coger un ContextNotActiveException
sólo para saber si un alcance está activo o no.
¿Tiene alguna forma mejor de conocer el estado (activo o no) de un contexto en CDI?
RequestScoped casi siempre debe estar activo, a menos que esté haciendo algo a través de un evento asíncrono. ¿Que estás tratando de hacer? – LightGuard
Sí, estoy tratando de detectarlo porque potencialmente estoy en un evento asíncrono o en uno programado ... vea https://issues.jboss.org/browse/SEAMPERSIST-78 –
En ese caso, lo que tiene es probablemente la mejor solución – LightGuard