micronaut-projects / micronaut-projects/micronaut-data
Issue when enabling eager initialization and using hibernate-reactive
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 482
- Forks
- 229
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 32
Description
Expected Behavior
The application should boot successfully (just like when it has eager initialization of singletons disabled).
Actual Behaviour
When the eager initialization of singletons is enabled, the following error can be seen:
15:19:48.141 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Bean definition [io.micronaut.reactor.http.client.sse.ReactorSseClientFactory] could not be loaded: Failed to initialize the bean [class io.micronaut.reactor.http.client.sse.ReactorSseClientFactory]: io/micronaut/http/client/sse/SseClientRegistry
io.micronaut.context.exceptions.BeanInstantiationException: Bean definition [io.micronaut.reactor.http.client.sse.ReactorSseClientFactory] could not be loaded: Failed to initialize the bean [class io.micronaut.reactor.http.client.sse.ReactorSseClientFactory]: io/micronaut/http/client/sse/SseClientRegistry
at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1983)
at io.micronaut.context.DefaultApplicationContext.initializeContext(DefaultApplicationContext.java:307)
at io.micronaut.context.DefaultBeanContext.configureAndStartContext(DefaultBeanContext.java:3314)
at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:345)
at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:215)
at io.micronaut.runtime.Micronaut.start(Micronaut.java:75)
at io.github.lengors.Application.main(Application.java:12)
Caused by: io.micronaut.context.exceptions.BeanInstantiationException: Failed to initialize the bean [class io.micronaut.reactor.http.client.sse.ReactorSseClientFactory]: io/micronaut/http/client/sse/SseClientRegistry
at io.micronaut.context.AbstractInitializableBeanDefinitionAndReference.load(AbstractInitializableBeanDefinitionAndReference.java:131)
at io.micronaut.context.DefaultBeanContext.loadEagerBeans(DefaultBeanContext.java:2669)
at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1981)
... 6 common frames omitted
Caused by: java.lang.NoClassDefFoundError: io/micronaut/http/client/sse/SseClientRegistry
at io.micronaut.reactor.http.client.sse.$ReactorSseClientFactory$Definition.<clinit>(Unknown Source)
at java.base/jdk.internal.misc.Unsafe.allocateInstance(Native Method)
at java.base/java.lang.invoke.DirectMethodHandle.allocateInstance(DirectMethodHandle.java:501)
at io.micronaut.core.io.service.SoftServiceLoader.lambda$collectDynamicServices$2(SoftServiceLoader.java:189)
at io.micronaut.core.io.service.ServiceScanner$ServiceInstanceLoader.compute(ServiceScanner.java:402)
at java.base/java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:194)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
Caused by: java.lang.ClassNotFoundException: io.micronaut.http.client.sse.SseClientRegistry
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 11 common frames omitted
Steps To Reproduce
Simply clone the linked example and run:
./mvnw clean mn:run
Environment Information
- Operating System: Windows 11
- JDK: 21
Example Application
https://github.com/lengors/micronaut-hibernate-reactive-bug-demo
Version
4.6.2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Clone the linked micronaut-hibernate-reactive-bug-demo and run ./mvnw clean mn:run, then trace startup from Application.main through eager bean loading to ReactorSseClientFactory and the missing SseClientRegistry. Done means the example boots successfully with eager singleton initialization enabled, without the reported NoClassDefFoundError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100