'NPE in Quarkus application with InfiniSpan cache and JPA configured as its persistence store

I am trying to configure hibernate-orm as persistence store to InfiniSpan cache. I have CacheManager as below:

GlobalConfigurationBuilder globalConfigBuilder = GlobalConfigurationBuilder.defaultClusteredBuilder();
globalConfigBuilder.transport().clusterName("AetherInfini");
DefaultCacheManager cacheManager = new DefaultCacheManager(globalConfigBuilder.build());

And cache configuration:

ConfigurationBuilder cacheConfigBuilder = new ConfigurationBuilder();
cacheConfigBuilder
        .clustering()
        .cacheMode(CacheMode.REPL_ASYNC)
        .persistence()
        .addStore(JpaStoreConfigurationBuilder.class)
        .persistenceUnitName("<default>")
        .entityClass(MyClass.class)
        .segmented(false);
cacheManager.defineConfiguration("my-name", cacheConfigBuilder.build());

It ran into an NPE:

ERROR [io.qua.run.Application] (main) Failed to start application (with profile prod): java.lang.NullPointerException
at io.quarkus.hibernate.orm.runtime.FastBootHibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(FastBootHibernatePersistenceProvider.java:165)
at io.quarkus.hibernate.orm.runtime.FastBootHibernatePersistenceProvider.createEntityManagerFactory(FastBootHibernatePersistenceProvider.java:61)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:80)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at org.infinispan.persistence.jpa.impl.EntityManagerFactoryRegistry.createEntityManagerFactory(EntityManagerFactoryRegistry.java:89)
at org.infinispan.persistence.jpa.impl.EntityManagerFactoryRegistry.getEntityManagerFactory(EntityManagerFactoryRegistry.java:28)
at org.infinispan.persistence.jpa.JpaStore.start(JpaStore.java:100)
at org.infinispan.persistence.support.NonBlockingStoreAdapter.lambda$start$0(NonBlockingStoreAdapter.java:108)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1736)
at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
at java.base/java.lang.Thread.run(Thread.java:829)

I have hibernate-orm configuration in application.properties. Therefore there is no explicit persistence-unit name. I found <default> is the name in Quarkus (?).

Can someone tell me what is wrong or point me to related documents? Thank you.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source