I've been seeing probe not initalized exceptions that occur on CDI 2.0 but not CDI 1.2, from what I can see when I debug into the issue the problem occurs in TransactionalObserverNotifier(ObserverNotifier).notifySyncObservers

In CDI 1.2 I see that the the ArrayList observers has two entries, the first being ProbeExtension.afterDeploymentValidation

In CDI 2.0 I see four entries, with the first being org.apache.myfaces.cdi.config.FacesConfigExtension

And when the afterDeploymentValidation method of
FacesConfigExtension is called the result is org.jboss.weld.exceptions.IllegalStateException: PROBE-000005: Probe is not properly initialized. I've attached a stack from that error:

And the source is on github: https://github.com/apache/myfaces/blob/master/impl/src/main/java/org/apache/myfaces/cdi/config/FacesConfigExtension.java

So what are the options here? I don't see anything under http://docs.jboss.org/cdi/spec/1.2/cdi-spec.html#after_deployment_validation saying that you shouldn't invoke beans during after deployment validation observers. A bit earlier in 11.5 it says "If other beans are injected into an extension’s observer methods, non-portable behavior results" but it's not clear if that refers to using the injected bean manager to lookup a bean.

Presumably if weld-probe needs to run first there's some code to ensure it does? Do we need to do something to integrate with that code, or avoid integrating myfaces?


Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU