micronaut-projects / micronaut-projects/micronaut-data

Issue when enabling eager initialization and using hibernate-reactive

Open
#3,134 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: example attached type: bug
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.