JZlib not in the classpath
I tried to clean up my Vertx example project to Vertx 5.0.0, when cleaning the Rxjava3 examples, encountered an issue.
The codes used to start a HTTP server is like this:
return vertx.createHttpServer()
.requestHandler(router)
.rxListen(8888)
.doOnSuccess(server -> {
log.info("HTTP server started on port " + server.actualPort());
})
.doOnError(throwable -> {
log.error("Failed to start HTTP server:" + throwable.getMessage());
})
.ignoreElement();
And I defined a simple /hello endpont in the router.
router.get("/hello").handler(rc -> rc.response().rxEnd("Hello from my route"));
Version
Windows 10 Pro vertx 5.0.0 Java 21
Context
I encountered an exception which looks suspicious while hiting the hello endpoint
[INFO] [stdout] 2025-05-16 14:12:27,321 DEBUG [vert.x-eventloop-thread-1] i.n.h.c.c.ZlibCodecFactory: -Dio.netty.noJdkZlibDecoder: false
[INFO] [stdout] 2025-05-16 14:12:27,322 DEBUG [vert.x-eventloop-thread-1] i.n.h.c.c.ZlibCodecFactory: -Dio.netty.noJdkZlibEncoder: false
[INFO] [stdout] 2025-05-16 14:12:27,323 DEBUG [vert.x-eventloop-thread-1] i.n.h.c.c.ZlibCodecFactory: JZlib not in the classpath; the only window bits supported value will be 15
Do you have a reproducer?
- https://github.com/hantsy/vertx-sandbox
Steps to reproduce
- git clone https://github.com/hantsy/vertx-sandbox
- cd vertx-sandbox
- docker compose docker-compose.yml
- cd rxjava3
- mvn clean package exec:java -DskipTests
- Or
java -jar ...-fat.jarafter build
can you provide a reproducer that does not use docker compose ?
how does that work ? I ran mvn test and everything worked
What OS you are using?
I was using Windows 10.
Let's wait for others to confirm this.
@vietj The test is empty.
Run the project via mvn clean package exec:java
Or run in another terminal java -jar xxx-fat.jar after build.
Then hit the /hello endpoint via curl http://localhost:8888/hello
This does not seem to be an exception to me, it is just a log line that explain that JZlib is not available and is not an error
Yes, but the endpoint is blocked, no returned result.
When searching JZlib in rxjava3 github sources, can not find such a dependency.
ah it works for me on OSX
I don't have windows, can you can you try debug it ?
Step into the calling stack, got the exception in the console.
2025-05-18 19:31:25,730 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 10024 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at java.base/java.util.Arrays.copyOf(Arrays.java:3538)
at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:242)
at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:587)
at java.base/java.lang.StringBuilder.append(StringBuilder.java:179)
at java.base/java.util.jar.JarFile.getVersionedEntry(JarFile.java:614)
at java.base/java.util.jar.JarFile.getEntry(JarFile.java:510)
at java.base/java.util.jar.JarFile.getJarEntry(JarFile.java:471)
at java.base/jdk.internal.loader.URLClassPath$JarLoader.getResource(URLClassPath.java:923)
at java.base/jdk.internal.loader.URLClassPath.getResource(URLClassPath.java:316)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:757)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
at io.vertx.core.http.HttpMethod.<clinit>(HttpMethod.java:192)
at io.vertx.ext.web.impl.RouterImpl.get(RouterImpl.java:109)
at io.vertx.rxjava3.ext.web.Router.get(Router.java:209)
at com.example.starter.MainVerticle.routes(MainVerticle.java:24)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:31:28,728 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 13064 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at io.vertx.rxjava3.ext.web.Route.handler(Route.java:182)
at com.example.starter.MainVerticle.routes(MainVerticle.java:24)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:31:37,949 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 22285 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at io.vertx.ext.web.impl.RouteImpl.handler(RouteImpl.java:140)
at io.vertx.rxjava3.ext.web.Route.handler(Route.java:182)
at com.example.starter.MainVerticle.routes(MainVerticle.java:24)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:31:40,642 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 24977 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at io.vertx.ext.web.impl.RouteImpl.handler(RouteImpl.java:143)
at io.vertx.rxjava3.ext.web.Route.handler(Route.java:182)
at com.example.starter.MainVerticle.routes(MainVerticle.java:24)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:31:42,506 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 26842 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at io.vertx.ext.web.impl.RouteImpl.handler(RouteImpl.java:145)
at io.vertx.rxjava3.ext.web.Route.handler(Route.java:182)
at com.example.starter.MainVerticle.routes(MainVerticle.java:24)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:31:44,231 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 28567 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at io.vertx.ext.web.impl.RouteImpl.handler(RouteImpl.java:149)
at io.vertx.rxjava3.ext.web.Route.handler(Route.java:182)
at com.example.starter.MainVerticle.routes(MainVerticle.java:24)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:31:48,182 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 32503 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at io.vertx.ext.web.impl.RouteImpl.handler(RouteImpl.java:153)
at io.vertx.rxjava3.ext.web.Route.handler(Route.java:182)
at com.example.starter.MainVerticle.routes(MainVerticle.java:24)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:31:56,059 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 40396 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at io.vertx.rxjava3.ext.web.Route.handler(Route.java:183)
at com.example.starter.MainVerticle.routes(MainVerticle.java:24)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:31:59,174 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 43511 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at io.vertx.rxjava3.ext.web.Route.handler(Route.java:183)
at com.example.starter.MainVerticle.routes(MainVerticle.java:24)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:32:06,038 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 50371 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at com.example.starter.MainVerticle.routes(MainVerticle.java:24)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:32:31,636 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 75972 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at com.example.starter.MainVerticle.routes(MainVerticle.java:25)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:32:40,867 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 85203 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:33:02,125 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 106446 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at java.base/jdk.internal.loader.URLClassPath$JarLoader.getResource(URLClassPath.java:928)
at java.base/jdk.internal.loader.URLClassPath.getResource(URLClassPath.java:316)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:757)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
at io.vertx.rxjava3.core.http.HttpServer.requestHandler(HttpServer.java:117)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:33:05,442 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 109778 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at io.vertx.core.http.impl.HttpServerImpl.requestHandler(HttpServerImpl.java:104)
at io.vertx.rxjava3.core.http.HttpServer.requestHandler(HttpServer.java:117)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:33:07,691 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 112028 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at io.vertx.core.http.impl.HttpServerImpl.requestHandler(HttpServerImpl.java:108)
at io.vertx.rxjava3.core.http.HttpServer.requestHandler(HttpServer.java:117)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:33:13,538 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 117873 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at io.vertx.rxjava3.core.http.HttpServer.requestHandler(HttpServer.java:118)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:15)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:33:20,813 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 123230 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:16)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
2025-05-18 19:33:32,002 WARN [vertx-blocked-thread-checker] i.v.c.l.SLF4JLogDelegate: Thread vert.x-eventloop-thread-0 has been blocked for 136336 ms, time limit is 2000 ms
io.vertx.core.VertxException: Thread blocked
at java.base/java.lang.Object.clone(Native Method)
at java.base/java.lang.invoke.MethodTypeForm.canonicalizeAll(MethodTypeForm.java:288)
at java.base/java.lang.invoke.MethodTypeForm.canonicalize(MethodTypeForm.java:243)
at java.base/java.lang.invoke.MethodTypeForm.findForm(MethodTypeForm.java:220)
at java.base/java.lang.invoke.MethodType.makeImpl(MethodType.java:407)
at java.base/java.lang.invoke.MethodType.methodType(MethodType.java:373)
at java.base/java.lang.invoke.MethodHandleNatives.findMethodHandleType(MethodHandleNatives.java:411)
at io.vertx.rxjava3.core.http.HttpServer.rxListen(HttpServer.java:386)
at com.example.starter.MainVerticle.rxStart(MainVerticle.java:16)
at io.vertx.rxjava3.core.AbstractVerticle.start(AbstractVerticle.java:39)
at io.vertx.core.AbstractVerticle.deploy(AbstractVerticle.java:106)
at io.vertx.core.impl.deployment.DefaultDeployment.lambda$deploy$1(DefaultDeployment.java:183)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:249)
at io.vertx.core.internal.ContextInternal.dispatch(ContextInternal.java:231)
at io.vertx.core.internal.ContextInternal.lambda$runOnContext$0(ContextInternal.java:50)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:148)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:141)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:507)
at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:180)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1073)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
May 18, 2025 7:33:32 PM org.junit.jupiter.engine.execution.JupiterEngineExecutionContext close
SEVERE: Caught exception while closing extension context: org.junit.jupiter.engine.descriptor.MethodExtensionContext@1bc53649
java.util.concurrent.TimeoutException: Closing the Vertx context timed out
at io.vertx.junit5.VertxParameterProvider.lambda$parameterClosingConsumer$1(VertxParameterProvider.java:83)
at io.vertx.junit5.ScopedObject.close(ScopedObject.java:45)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.execution.ExtensionValuesStore.lambda$closeAllStoredCloseableValues$3(ExtensionValuesStore.java:68)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395)
at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:261)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at org.junit.jupiter.engine.execution.ExtensionValuesStore.closeAllStoredCloseableValues(ExtensionValuesStore.java:68)
at org.junit.jupiter.engine.descriptor.AbstractExtensionContext.close(AbstractExtensionContext.java:80)
at org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.close(JupiterEngineExecutionContext.java:53)
at org.junit.jupiter.engine.descriptor.JupiterTestDescriptor.cleanUp(JupiterTestDescriptor.java:222)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$cleanUp$1(TestMethodTestDescriptor.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.cleanUp(TestMethodTestDescriptor.java:155)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.cleanUp(TestMethodTestDescriptor.java:68)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$cleanUp$10(NodeTestTask.java:167)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.cleanUp(NodeTestTask.java:167)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:98)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:56)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:231)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
java.util.concurrent.TimeoutException: The test execution timed out. Make sure your asynchronous code includes calls to either VertxTestContext#completeNow(), VertxTestContext#failNow() or Checkpoint#flag()
Unsatisfied checkpoints diagnostics:
at io.vertx.junit5.VertxExtension.joinActiveTestContexts(VertxExtension.java:216)
at io.vertx.junit5.VertxExtension.interceptBeforeEachMethod(VertxExtension.java:149)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:78)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:520)
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$23(ClassBasedTestDescriptor.java:505)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:174)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:202)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:202)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:171)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:134)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:56)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:231)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
Suppressed: java.util.concurrent.TimeoutException: Closing the Vertx context timed out
at io.vertx.junit5.VertxParameterProvider.lambda$parameterClosingConsumer$1(VertxParameterProvider.java:83)
at io.vertx.junit5.ScopedObject.close(ScopedObject.java:45)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.execution.ExtensionValuesStore.lambda$closeAllStoredCloseableValues$3(ExtensionValuesStore.java:68)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395)
at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:261)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at org.junit.jupiter.engine.execution.ExtensionValuesStore.closeAllStoredCloseableValues(ExtensionValuesStore.java:68)
at org.junit.jupiter.engine.descriptor.AbstractExtensionContext.close(AbstractExtensionContext.java:80)
at org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.close(JupiterEngineExecutionContext.java:53)
at org.junit.jupiter.engine.descriptor.JupiterTestDescriptor.cleanUp(JupiterTestDescriptor.java:222)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$cleanUp$1(TestMethodTestDescriptor.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.cleanUp(TestMethodTestDescriptor.java:155)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.cleanUp(TestMethodTestDescriptor.java:68)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$cleanUp$10(NodeTestTask.java:167)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.cleanUp(NodeTestTask.java:167)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:98)
... 39 more
Disconnected from the target VM, address: '127.0.0.1:63835', transport: 'socket'
Process finished with exit code -1
UPdated and added tests : rxjava3-issue.zip
is that reproducible on non windows ?
@vietj Also tried to use curl on Github actions workflow for the original project which runs on an Ubuntu.
- name: Test with CURL
run: |
mvn clean package exec:java -DskipTests --file rxjava3/pom.xml &
sleep 10
echo ">>> print cURL result <<<"
curl http://localhost:8888/hello &
And got the following logging. It seems to be blocked.
>>> print cURL result <<<
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
2025-05-23 05:06:48,601 DEBUG [vert.x-eventloop-thread-1] i.n.h.c.c.ZlibCodecFactory: -Dio.netty.noJdkZlibDecoder: false
2025-05-23 05:06:48,601 DEBUG [vert.x-eventloop-thread-1] i.n.h.c.c.ZlibCodecFactory: -Dio.netty.noJdkZlibEncoder: false
2025-05-23 05:06:48,601 DEBUG [vert.x-eventloop-thread-1] i.n.h.c.c.ZlibCodecFactory: JZlib not in the classpath; the only window bits supported value will be 15
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:03 --:--:-- 0
Hi @hantsy
It seems the issue is with the route definition.
If you change:
router.get("/hello").handler(rc -> rc.response().rxEnd("Hello from my route"));
To:
// Must subscribe because computations are lazy with `rxEnd`
router.get("/hello").handler(rc -> rc.response().rxEnd("Hello from my route").subscribe());
Then the problem goes away.
I'm not sure how this is specific to 5.0, because the same behavior applies to 4.5.
Anyway, I'll close the issue but feel free to send more comments/questions
I will verify it, thanks for debugging it.
Ideally, for reactive case, it should not call the subcribe explicitly.
When an Http Client connects to this endpoint, it will trigger a subcribe method implicitly.
You can't have automatic subscription with the Route.handler method, but it should work with Route.respond
See https://vertx.io/docs/apidocs/io/vertx/reactivex/ext/web/Route.html#respond(io.reactivex.functions.Function)
Message ID: @.***>
I am not sure how Vertx handle the http client connection. In Spring reactive stack, we can always return a Mono/Flux type directly, when a client connects to the endpoint, Spring framework will let the client subscribe to the server reactive data stream.
// Must subscribe because computations are lazy with
rxEndrouter.get("/hello").handler(rc -> rc.response().rxEnd("Hello from my route").subscribe());
BTW, thank you for the solution.