We are using Hibernate ORM as the JPA persistence provider in the WebSphere Application Server 19.0.0.1 (Libertry), along with Hibernate Search. WebSphere Liberty CDI 2.0 is based on Weld.
During startup of the container, Hibernate Search tries to use the BeanManager prematurely, before the container has fired the AfterBeanDiscovery event, in relation to creating FieldBridge instances.
This behavior is in violation of the Java EE 8 Specification for the BeanManager interface, which states that the createInstance method must not be called before AfterBeanDiscovery event is fired.
Here is the stack trace:
org.hibernate.search.exception.SearchException: HSEARCH000139: Unable to instantiate FieldBridge
at org.hibernate.search.bridge.impl.BridgeFactory.createFieldBridgeFromAnnotation(BridgeFactory.java:400)
at org.hibernate.search.bridge.impl.BridgeFactory.findExplicitFieldBridge(BridgeFactory.java:350)
at org.hibernate.search.bridge.impl.BridgeFactory.buildFieldBridge(BridgeFactory.java:203)
at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.bindFieldAnnotation(AnnotationMetadataProvider.java:1335)
at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.checkForField(AnnotationMetadataProvider.java:1258)
at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.initializeMemberLevelAnnotations(AnnotationMetadataProvider.java:1065)
at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.initializeClass(AnnotationMetadataProvider.java:599)
at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.checkForIndexedEmbedded(AnnotationMetadataProvider.java:1924)
at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.initializeMemberLevelAnnotations(AnnotationMetadataProvider.java:1074)
at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.initializeClass(AnnotationMetadataProvider.java:599)
at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.doGetTypeMetadataFor(AnnotationMetadataProvider.java:192)
at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.getTypeMetadataFor(AnnotationMetadataProvider.java:181)
at org.hibernate.search.engine.metadata.impl.AnnotationMetadataProvider.getTypeMetadataFor(AnnotationMetadataProvider.java:165)
at org.hibernate.search.spi.SearchIntegratorBuilder.initDocumentBuilders(SearchIntegratorBuilder.java:445)
at org.hibernate.search.spi.SearchIntegratorBuilder.createNewFactoryState(SearchIntegratorBuilder.java:244)
at org.hibernate.search.spi.SearchIntegratorBuilder.buildNewSearchFactory(SearchIntegratorBuilder.java:200)
at org.hibernate.search.spi.SearchIntegratorBuilder.buildSearchIntegrator(SearchIntegratorBuilder.java:128)
at org.hibernate.search.hcore.impl.HibernateSearchSessionFactoryObserver.boot(HibernateSearchSessionFactoryObserver.java:127)
at org.hibernate.search.hcore.impl.HibernateSearchSessionFactoryObserver.sessionFactoryCreated(HibernateSearchSessionFactoryObserver.java:94)
at org.hibernate.internal.SessionFactoryObserverChain.sessionFactoryCreated(SessionFactoryObserverChain.java:35)
at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:371)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:462)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:938)
Caused by: org.hibernate.resource.beans.container.internal.NotYetReadyException: CDI BeanManager not (yet) ready to use
resolveContainerInstance:160, ContainerManagedLifecycleStrategy$BeanImpl (org.hibernate.resource.beans.container.internal)
initialize:92, ContainerManagedLifecycleStrategy$AbstractBeanImpl (org.hibernate.resource.beans.container.internal)
createBean:43, CdiBeanContainerImmediateAccessImpl (org.hibernate.resource.beans.container.internal)
createBean:64, AbstractCdiBeanContainer (org.hibernate.resource.beans.container.spi)
getBean:38, AbstractCdiBeanContainer (org.hibernate.resource.beans.container.spi)
resolve:63, HibernateOrmBeanContainerBeanResolver (org.hibernate.search.cfg.impl)
resolve:40, ReflectionFallbackBeanResolver (org.hibernate.search.engine.service.beanresolver.impl)
createFieldBridgeFromAnnotation:371, BridgeFactory (org.hibernate.search.bridge.impl)
findExplicitFieldBridge:350, BridgeFactory (org.hibernate.search.bridge.impl)
buildFieldBridge:203, BridgeFactory (org.hibernate.search.bridge.impl)
bindFieldAnnotation:1335, AnnotationMetadataProvider (org.hibernate.search.engine.metadata.impl)
checkForField:1258, AnnotationMetadataProvider (org.hibernate.search.engine.metadata.impl)
initializeMemberLevelAnnotations:1065, AnnotationMetadataProvider (org.hibernate.search.engine.metadata.impl)
initializeClass:599, AnnotationMetadataProvider (org.hibernate.search.engine.metadata.impl)
doGetTypeMetadataFor:192, AnnotationMetadataProvider (org.hibernate.search.engine.metadata.impl)
getTypeMetadataFor:181, AnnotationMetadataProvider (org.hibernate.search.engine.metadata.impl)
getTypeMetadataFor:165, AnnotationMetadataProvider (org.hibernate.search.engine.metadata.impl)
initDocumentBuilders:445, SearchIntegratorBuilder (org.hibernate.search.spi)
createNewFactoryState:244, SearchIntegratorBuilder (org.hibernate.search.spi)
buildNewSearchFactory:200, SearchIntegratorBuilder (org.hibernate.search.spi)
buildSearchIntegrator:128, SearchIntegratorBuilder (org.hibernate.search.spi)
boot:127, HibernateSearchSessionFactoryObserver (org.hibernate.search.hcore.impl)
sessionFactoryCreated:94, HibernateSearchSessionFactoryObserver (org.hibernate.search.hcore.impl)
sessionFactoryCreated:35, SessionFactoryObserverChain (org.hibernate.internal)
:371, SessionFactoryImpl (org.hibernate.internal)
build:462, SessionFactoryBuilderImpl (org.hibernate.boot.internal)
build:938, EntityManagerFactoryBuilderImpl (org.hibernate.jpa.boot.internal)
createContainerEntityManagerFactory:141, HibernatePersistenceProvider (org.hibernate.jpa)
createEMFactory:910, JPAPUnitInfo (com.ibm.ws.jpa.management)
initialize:762, JPAPUnitInfo (com.ibm.ws.jpa.management)
extractPersistenceUnits:183, JPAPxmlInfo (com.ibm.ws.jpa.management)
processPersistenceUnit:89, JPAScopeInfo (com.ibm.ws.jpa.management)
addPersistenceUnits:119, JPAApplInfo (com.ibm.ws.jpa.management)
processEJBModulePersistenceXml:543, JPAComponentImpl (com.ibm.ws.jpa.container.osgi.internal)
applicationStarting:275, JPAComponentImpl (com.ibm.ws.jpa.container.osgi.internal)
fireStarting:28, ApplicationStateManager (com.ibm.ws.container.service.state.internal)
fireApplicationStarting:50, StateChangeServiceImpl (com.ibm.ws.container.service.state.internal)
preDeployApp:383, DeployedAppInfoBase (com.ibm.ws.app.manager.module.internal)
deployApp:412, DeployedAppInfoBase (com.ibm.ws.app.manager.module.internal)
install:76, EARApplicationHandlerImpl (com.ibm.ws.app.manager.ear.internal)
execute:140, StartAction (com.ibm.ws.app.manager.internal.statemachine)
enterState:1258, ApplicationStateMachineImpl (com.ibm.ws.app.manager.internal.statemachine)
run:873, ApplicationStateMachineImpl (com.ibm.ws.app.manager.internal.statemachine)
run:239, ExecutorServiceImpl$RunnableWrapper (com.ibm.ws.threading.internal)
runWorker:1142, ThreadPoolExecutor (java.util.concurrent)
run:617, ThreadPoolExecutor$Worker (java.util.concurrent)
run:745, Thread (java.lang)
Caused by: java.lang.IllegalStateException: java.lang.UnsupportedOperationException: No current bean manager found in CDI service
at com.ibm.ws.jpa.container.v21.cdi.internal.BeanManagerInvocationHandler.invoke(BeanManagerInvocationHandler.java:69)
at com.sun.proxy.$Proxy65.createInstance(Unknown Source)
at org.hibernate.resource.beans.container.internal.ContainerManagedLifecycleStrategy$BeanImpl.resolveContainerInstance(ContainerManagedLifecycleStrategy.java:155)
… 49 more
Caused by: java.lang.UnsupportedOperationException: No current bean manager found in CDI service
at com.ibm.ws.jpa.container.v21.cdi.internal.BeanManagerInvocationHandler.getTarget(BeanManagerInvocationHandler.java:78)
at com.ibm.ws.jpa.container.v21.cdi.internal.BeanManagerInvocationHandler.invoke(BeanManagerInvocationHandler.java:62)
… 51 more