OpenNTF / org.openntf.xsp.jakartaee

XPages Jakarta EE support libraries
Apache License 2.0
21 stars 7 forks source link

java.lang.IllegalStateException: Unable to locate CDIProvider #538

Open slapraik-intec opened 3 months ago

slapraik-intec commented 3 months ago

Hi.

Saw this exception in the logs.

Encountered unhandled exception in Servlet java.lang.IllegalStateException: Unable to locate CDIProvider at jakarta.enterprise.inject.spi.CDI.findAllProviders(CDI.java:139) at jakarta.enterprise.inject.spi.CDI.getCDIProvider(CDI.java:92) at jakarta.enterprise.inject.spi.CDI.current(CDI.java:65) at org.openntf.xsp.jakarta.faces.nsf.NSFFacesServlet.doInit(NSFFacesServlet.java:99) at org.openntf.xsp.jakarta.faces.nsf.NSFFacesServlet.lambda$0(NSFFacesServlet.java:150) at java.base/java.security.AccessController.doPrivileged(AccessController.java:748) at org.openntf.xsp.jakarta.faces.nsf.NSFFacesServlet.service(NSFFacesServlet.java:145) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614) at org.openntf.xsp.jakartaee.servlet.NewHttpServletWrapper.service(NewHttpServletWrapper.java:112) at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:600) at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1352) at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:877) at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:820) at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:589) at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1336) at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:725) at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:515) at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:371) at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:327) at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:302)

Not quite sure how the server got into this state (it might have been caused by trying to access the app whilst a clean/rebuild of the app was happening).

However, once the server/application got into this state, I had to restart the "http" task before the application could be accessed again.

jesse-gallagher commented 3 months ago

Hmm, that's odd... This could be the case if there's a state where the NSFFacesServlet starts being initialized before the CDI BundleActivator didn't fire yet. That Activator sets an explicit CDIProvider, so it shouldn't need to get to the findAllProviders bit. I'll look into having that kick off earlier in all cases.