quarkus: NPE when injecting EntityManager/EntityManagerFactory into ObjectMapperCustomizer
Describe the bug I implemented the Jackson ObjectMapperCustomizer and tried to @Inject the Hibernate EntityManager or EntityManagerFactory. On quarkus:dev startup, a NullPointerException gets thrown:
Caused by: java.lang.NullPointerException
at io.quarkus.agroal.runtime.AbstractDataSourceProducer.getDataSourceBuildTimeConfig(AbstractDataSourceProducer.java:375)
Expected behavior Application should start, EM/EMF should get injected.
Actual behavior NPE, see description
To Reproduce Steps to reproduce the behavior:
- Check out https://github.com/HonoluluHenk/quarkus-bug-jacksoncustomizer-hibernate.git
- ./mvnw clean test
- Watch it crash&burn
Configuration N/A
Screenshots N/A
Environment (please complete the following information):
- Quarkus version or git rev: 1.4.1.Final
Additional context Most specific stacktrace entry:
Caused by: java.lang.NullPointerException
at io.quarkus.agroal.runtime.AbstractDataSourceProducer.getDataSourceBuildTimeConfig(AbstractDataSourceProducer.java:375)
at io.quarkus.agroal.runtime.DataSourceProducer.createDataSource_4c279770c59fa93dcf179ab15a1363f01f14f595(DataSourceProducer.zig:31)
at io.quarkus.agroal.runtime.DataSourceProducer_ProducerMethod_createDataSource_4c279770c59fa93dcf179ab15a1363f01f14f595_5923a8feaf2f425c7e2697f04d550dce98568e14_Bean.create(DataSourceProducer_ProducerMethod_createDataSource_4c279770c59fa93dcf179ab15a1363f01f14f595_5923a8feaf2f425c7e2697f04d550dce98568e14_Bean.zig:354)
at io.quarkus.agroal.runtime.DataSourceProducer_ProducerMethod_createDataSource_4c279770c59fa93dcf179ab15a1363f01f14f595_5923a8feaf2f425c7e2697f04d550dce98568e14_Bean.create(DataSourceProducer_ProducerMethod_createDataSource_4c279770c59fa93dcf179ab15a1363f01f14f595_5923a8feaf2f425c7e2697f04d550dce98568e14_Bean.zig:297)
at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:79)
at io.quarkus.arc.impl.ComputingCache$CacheFunction.lambda$apply$0(ComputingCache.java:99)
at io.quarkus.arc.impl.LazyValue.get(LazyValue.java:26)
at io.quarkus.arc.impl.ComputingCache.getValue(ComputingCache.java:41)
at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:25)
at io.quarkus.agroal.runtime.DataSourceProducer_ProducerMethod_createDataSource_4c279770c59fa93dcf179ab15a1363f01f14f595_5923a8feaf2f425c7e2697f04d550dce98568e14_Bean.get(DataSourceProducer_ProducerMethod_createDataSource_4c279770c59fa93dcf179ab15a1363f01f14f595_5923a8feaf2f425c7e2697f04d550dce98568e14_Bean.zig:269)
at io.quarkus.agroal.runtime.DataSourceProducer_ProducerMethod_createDataSource_4c279770c59fa93dcf179ab15a1363f01f14f595_5923a8feaf2f425c7e2697f04d550dce98568e14_Bean.get(DataSourceProducer_ProducerMethod_createDataSource_4c279770c59fa93dcf179ab15a1363f01f14f595_5923a8feaf2f425c7e2697f04d550dce98568e14_Bean.zig:41)
at io.quarkus.arc.impl.ArcContainerImpl.beanInstanceHandle(ArcContainerImpl.java:380)
at io.quarkus.arc.impl.ArcContainerImpl.beanInstanceHandle(ArcContainerImpl.java:393)
at io.quarkus.arc.impl.ArcContainerImpl.instanceHandle(ArcContainerImpl.java:363)
at io.quarkus.arc.impl.ArcContainerImpl.instance(ArcContainerImpl.java:200)
at io.quarkus.hibernate.orm.runtime.FastBootHibernatePersistenceProvider.injectDataSource(FastBootHibernatePersistenceProvider.java:265)
at io.quarkus.hibernate.orm.runtime.FastBootHibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(FastBootHibernatePersistenceProvider.java:155)
at io.quarkus.hibernate.orm.runtime.FastBootHibernatePersistenceProvider.createEntityManagerFactory(FastBootHibernatePersistenceProvider.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:80)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at io.quarkus.hibernate.orm.runtime.JPAConfig$LazyPersistenceUnit.get(JPAConfig.java:110)
at io.quarkus.hibernate.orm.runtime.JPAConfig.getEntityManagerFactory(JPAConfig.java:43)
at io.quarkus.hibernate.orm.runtime.JPAResourceReferenceProvider.lambda$get$0(JPAResourceReferenceProvider.java:26)
at io.quarkus.arc.impl.ResourceProvider.get(ResourceProvider.java:36)
at io.quarkus.hibernate.orm.runtime.DefaultEntityManagerFactoryProducer_Bean.create(DefaultEntityManagerFactoryProducer_Bean.zig:61)
... 78 more
About this issue
- Original URL
- State: open
- Created 4 years ago
- Comments: 20 (15 by maintainers)
Commits related to this issue
- Add CDI bean to allow easy access to some hibernate metadata at runtime Fixes: #9049 — committed to geoand/quarkus by geoand 4 years ago
- Add CDI bean to allow easy access to some hibernate metadata at runtime Fixes: #9049 — committed to geoand/quarkus by geoand 4 years ago
- Add CDI bean to allow easy access to some hibernate metadata at runtime Fixes: #9049 — committed to geoand/quarkus by geoand 4 years ago
- Add CDI bean to allow easy access to some hibernate metadata at runtime Fixes: #9049 — committed to geoand/quarkus by geoand 4 years ago
- Add CDI bean to allow easy access to some hibernate metadata at runtime Fixes: #9049 — committed to geoand/quarkus by geoand 4 years ago
- Add CDI bean to allow easy access to some hibernate metadata at runtime Fixes: #9049 — committed to geoand/quarkus by geoand 4 years ago
- Add CDI bean to allow easy access to some hibernate metadata at runtime Fixes: #9049 — committed to geoand/quarkus by geoand 4 years ago
- Add CDI bean to allow easy access to some hibernate metadata at runtime Fixes: #9049 — committed to geoand/quarkus by geoand 4 years ago
- Add CDI bean to allow easy access to some hibernate metadata at runtime Fixes: #9049 — committed to geoand/quarkus by geoand 4 years ago
- Add CDI bean to allow easy access to some hibernate metadata at runtime Fixes: #9049 — committed to geoand/quarkus by geoand 4 years ago
- Add CDI bean to allow easy access to some hibernate metadata at runtime Fixes: #9049 — committed to geoand/quarkus by geoand 4 years ago
I like the first solution a lot, it’s very straightforward! When I have some spare cycles I’ll look into it, but I think it should be possible.