vaadin / quarkus

An extension to Quarkus to support Vaadin Flow
Apache License 2.0
28 stars 3 forks source link

Thread blocked and UnsupportedOperationException with high request rate #138

Open diversit opened 1 year ago

diversit commented 1 year ago

Issue

We're rediscovering Vaadin and in our project we see something similar which can easily be replicated with this 'base-starter' project.

After starting the application, open the browser and hit refresh fast and often, several exceptions occur. See full logs below.

Especially the 2023-10-03 17:01:44,786 WARN [io.ver.cor.imp.BlockedThreadChecker] (vertx-blocked-thread-checker) Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 3941 ms, time limit is 2000 ms: io.vertx.core.VertxException: Thread blocked we see in our project al lot and then we do not need to refresh that often.

Other exception that occurs often is: 2023-10-03 17:01:07,706 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-2) : java.lang.UnsupportedOperationException: Unexpected message id from the client. Expected sync id: 0, got 1. more details logged on DEBUG level.

I had a look in the VaadinService class and where the lockSession is used on L812. Should that try-catch block not also have a finally block like the other try-catch-finally block ? Could be the cause of the locked thread?

I did not look at what could have caused the UnsupportedOperationException.

I talked to some Vaadin guys at the current Devoxx conference and he suggested to great an issue here.

Environment

Full logs

Vaadin application has been deployed and started.
__  ____  __  _____   ___  __ ____  ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2023-10-03 17:00:18,333 INFO  [io.und.servlet] (Quarkus Main Thread) Initializing AtmosphereFramework

2023-10-03 17:00:18,404 INFO  [com.vaa.bas.dev.sta.DevModeStartupListener] (Quarkus Main Thread) Starting dev-mode updaters in /Users/joostdenboer/Projects/tryout/vaadin/base-starter-flow-quarkus folder.
2023-10-03 17:00:18,420 INFO  [com.vaa.flo.ser.fro.sca.FullDependenciesScanner] (Quarkus Main Thread) Visited 72 classes. Took 10 ms.
2023-10-03 17:00:18,421 INFO  [com.vaa.flo.ser.fro.BundleValidationUtil] (Quarkus Main Thread) Checking if a development mode bundle build is needed
2023-10-03 17:00:18,450 INFO  [com.vaa.flo.ser.fro.BundleValidationUtil] (Quarkus Main Thread) A development mode bundle build is not needed
2023-10-03 17:00:18,458 INFO  [com.vaa.flo.ser.fro.TaskCopyFrontendFiles] (ForkJoinPool.commonPool-worker-10) Copying frontend resources from jar files ...
2023-10-03 17:00:18,470 INFO  [com.vaa.flo.ser.fro.TaskCopyFrontendFiles] (ForkJoinPool.commonPool-worker-10) Visited 17 resources. Took 12 ms.
2023-10-03 17:00:18,537 INFO  [com.vaa.flo.ser.sta.ServletDeployer] (Quarkus Main Thread) Skipping automatic servlet registration because there is already a Vaadin servlet with the name com.vaadin.quarkus.QuarkusVaadinServlet
2023-10-03 17:00:18,544 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /*
2023-10-03 17:00:18,544 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler
2023-10-03 17:00:18,554 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation
2023-10-03 17:00:18,556 INFO  [org.atm.uti.ForkJoinPool] (Quarkus Main Thread) Using ForkJoinPool  java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power.
2023-10-03 17:00:18,558 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol
2023-10-03 17:00:18,559 INFO  [org.atm.con.JSR356AsyncSupport] (Quarkus Main Thread) JSR 356 Mapping path /VAADIN/push
2023-10-03 17:00:18,560 INFO  [io.und.websockets] (Quarkus Main Thread) UT026005: Adding programmatic server endpoint class org.atmosphere.container.JSR356Endpoint for path /VAADIN/push
2023-10-03 17:00:18,560 INFO  [io.und.websockets] (Quarkus Main Thread) UT026005: Adding programmatic server endpoint class org.atmosphere.container.JSR356Endpoint for path /VAADIN/push/
2023-10-03 17:00:18,560 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installing Default AtmosphereInterceptors
2023-10-03 17:00:18,560 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support
2023-10-03 17:00:18,561 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor
2023-10-03 17:00:18,561 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support
2023-10-03 17:00:18,561 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support
2023-10-03 17:00:18,561 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Dropping Interceptor org.atmosphere.interceptor.HeartbeatInterceptor
2023-10-03 17:00:18,561 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support
2023-10-03 17:00:18,561 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support
2023-10-03 17:00:18,561 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol
2023-10-03 17:00:18,561 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor
2023-10-03 17:00:18,561 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them.
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Broadcaster Shared List Resources: false
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Broadcaster Polling Wait Time 100
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Shared ExecutorService supported: true
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Async I/O Thread Pool Size: 200
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory
2023-10-03 17:00:18,562 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor
2023-10-03 17:00:18,563 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Invoke AtmosphereInterceptor on WebSocket message true
2023-10-03 17:00:18,563 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) HttpSession supported: true
2023-10-03 17:00:18,563 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation
2023-10-03 17:00:18,563 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Undertow - 5.0.2.Final using jakarta.servlet/3.0 and jsr356/WebSocket API
2023-10-03 17:00:18,563 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Atmosphere Framework 3.0.3.slf4jvaadin1 started.
2023-10-03 17:00:18,564 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor  Track Message Size Interceptor using | with priority BEFORE_DEFAULT
2023-10-03 17:00:18,570 INFO  [com.vaa.flo.ser.DefaultDeploymentConfiguration] (Quarkus Main Thread)
Vaadin is running in DEVELOPMENT mode - do not use for production deployments.

The following feature previews are enabled:
- SideNav component (Production ready but tweaks to at least the internal DOM will still take place)

2023-10-03 17:00:18,700 INFO  [io.quarkus] (Quarkus Main Thread) base-starter-flow-quarkus 1.0-SNAPSHOT on JVM (powered by Quarkus 3.3.0) started in 1.227s. Listening on: http://localhost:8080
2023-10-03 17:00:18,700 INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2023-10-03 17:00:18,701 INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [cdi, servlet, smallrye-context-propagation, vaadin-quarkus, vertx, websockets, websockets-client]
2023-10-03 17:00:34,884 INFO  [com.vaa.qua.QuarkusInstantiator] (executor-thread-1) Can't find any @VaadinServiceScoped bean implementing 'I18NProvider'. Cannot use CDI beans for I18N, falling back to the default behavior.
2023-10-03 17:00:42,822 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-1) : java.lang.UnsupportedOperationException: Unexpected message id from the client. Expected sync id: 0, got 1. more details logged on DEBUG level.
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:313)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1529)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:624)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:124)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:439)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:577)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)

2023-10-03 17:00:59,553 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-2) : java.lang.UnsupportedOperationException: Unexpected message id from the client. Expected sync id: 0, got 1. more details logged on DEBUG level.
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:313)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1529)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:624)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:124)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:439)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:577)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)

2023-10-03 17:01:07,706 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-2) : java.lang.UnsupportedOperationException: Unexpected message id from the client. Expected sync id: 0, got 1. more details logged on DEBUG level.
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:313)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1529)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:624)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:124)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:439)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:577)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)

2023-10-03 17:01:44,786 WARN  [io.ver.cor.imp.BlockedThreadChecker] (vertx-blocked-thread-checker) Thread Thread[vert.x-eventloop-thread-0,5,main] has been blocked for 3941 ms, time limit is 2000 ms: io.vertx.core.VertxException: Thread blocked
    at java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211)
    at java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:715)
    at java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:938)
    at java.base@17.0.8/java.util.concurrent.locks.ReentrantLock$Sync.lock(ReentrantLock.java:153)
    at java.base@17.0.8/java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:322)
    at com.vaadin.flow.server.VaadinService.lockSession(VaadinService.java:765)
    at com.vaadin.flow.server.VaadinService.findOrCreateVaadinSession(VaadinService.java:812)
    at com.vaadin.flow.server.VaadinService.findVaadinSession(VaadinService.java:657)
    at com.vaadin.flow.server.communication.PushHandler.callWithServiceAndSession(PushHandler.java:211)
    at com.vaadin.flow.server.communication.PushHandler.onConnect(PushHandler.java:565)
    at com.vaadin.flow.server.communication.PushAtmosphereHandler.onConnect(PushAtmosphereHandler.java:103)
    at com.vaadin.flow.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.java:77)
    at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:217)
    at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:103)
    at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:67)
    at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2284)
    at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:574)
    at org.atmosphere.websocket.DefaultWebSocketProcessor.open(DefaultWebSocketProcessor.java:213)
    at org.atmosphere.container.JSR356Endpoint.onOpen(JSR356Endpoint.java:254)
    at io.undertow.websockets.EndpointSessionHandler.connected(EndpointSessionHandler.java:119)
    at io.undertow.websockets.vertx.VertxWebSocketHandler$1.accept(VertxWebSocketHandler.java:120)
    at io.undertow.websockets.vertx.VertxWebSocketHandler$1.accept(VertxWebSocketHandler.java:117)
    at io.undertow.websockets.handshake.Handshake$1.accept(Handshake.java:147)
    at io.undertow.websockets.vertx.VertxWebSocketHttpExchange$1.handle(VertxWebSocketHttpExchange.java:129)
    at io.undertow.websockets.vertx.VertxWebSocketHttpExchange$1.handle(VertxWebSocketHttpExchange.java:121)
    at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141)
    at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54)
    at io.vertx.core.impl.future.FutureBase$$Lambda$1292/0x00000008008d2a18.run(Unknown Source)
    at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:86)
    at io.vertx.core.impl.DuplicatedContext.execute(DuplicatedContext.java:163)
    at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:51)
    at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211)
    at io.vertx.core.impl.future.PromiseImpl.tryComplete(PromiseImpl.java:23)
    at io.vertx.core.Promise.complete(Promise.java:66)
    at io.vertx.core.impl.future.PromiseImpl.operationComplete(PromiseImpl.java:65)
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
    at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
    at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:625)
    at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:105)
    at io.netty.util.internal.PromiseNotificationUtil.trySuccess(PromiseNotificationUtil.java:48)
    at io.netty.channel.ChannelOutboundBuffer.safeSuccess(ChannelOutboundBuffer.java:728)
    at io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:283)
    at io.netty.channel.ChannelOutboundBuffer.removeBytes(ChannelOutboundBuffer.java:363)
    at io.netty.channel.socket.nio.NioSocketChannel.doWrite(NioSocketChannel.java:421)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:931)
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:354)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:895)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1372)
    at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:921)
    at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:907)
    at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:893)
    at io.vertx.core.net.impl.ConnectionBase.endReadAndFlush(ConnectionBase.java:145)
    at io.vertx.core.net.impl.VertxHandler.channelReadComplete(VertxHandler.java:148)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:484)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:463)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelReadComplete(AbstractChannelHandlerContext.java:456)
    at io.netty.handler.timeout.IdleStateHandler.channelReadComplete(IdleStateHandler.java:295)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:484)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:463)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelReadComplete(AbstractChannelHandlerContext.java:456)
    at io.netty.handler.codec.ByteToMessageDecoder.channelReadComplete(ByteToMessageDecoder.java:358)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:486)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:463)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelReadComplete(AbstractChannelHandlerContext.java:456)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelReadComplete(DefaultChannelPipeline.java:1415)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:482)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:463)
    at io.netty.channel.DefaultChannelPipeline.fireChannelReadComplete(DefaultChannelPipeline.java:925)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:171)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base@17.0.8/java.lang.Thread.run(Thread.java:833)

2023-10-03 17:02:40,820 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-2) : java.io.IOException: Read timeout
    at io.undertow.vertx.VertxHttpExchange.readBlocking(VertxHttpExchange.java:505)
    at io.undertow.server.HttpServerExchange.readBlocking(HttpServerExchange.java:944)
    at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:178)
    at io.undertow.servlet.spec.ServletInputStreamImpl.read(ServletInputStreamImpl.java:158)
    at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270)
    at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313)
    at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
    at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)
    at java.base/java.io.BufferedReader.read1(BufferedReader.java:211)
    at java.base/java.io.BufferedReader.read(BufferedReader.java:287)
    at java.base/java.io.Reader.read(Reader.java:250)
    at com.vaadin.flow.server.communication.ServerRpcHandler.getMessage(ServerRpcHandler.java:474)
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:252)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1529)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:624)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:124)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:439)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:577)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)
mcollovati commented 1 year ago

It could be related to https://github.com/quarkusio/quarkus/issues/11076 and https://github.com/mcollovati/quarkus-hilla/issues/182

It seems the issue could be resolved by installing a RequireBodyHandler

    @BuildStep
    void requireRequestBodyHandler(BuildProducer<RequireBodyHandlerBuildItem> producer) {
         producer.produce(new RequireBodyHandlerBuildItem());
    }

As a workaround in your application, you can try to manually install the BodyHandler


@ApplicationScoped
public class BodyHandlerInstaller {

    public void init(@Observes StartupEvent e, Router httpRouteRouter) {
        Handler<RoutingContext> bodyHandler = BodyHandler.create();
        httpRouteRouter.route().order(Integer.MIN_VALUE + 1).handler(routingContext -> {
            routingContext.request().resume();
            bodyHandler.handle(routingContext);
        });
    }
}

I'll transfer the issue to the vaadin-quarkus repository for further investigation

diversit commented 1 year ago

I tried the BodyHandlerInstaller on the Quarkus base-starter project and I have not been able to reproduce the blocked thread yet. I will now also try this in our application.

diversit commented 1 year ago

I have tried this in our application, but it only seems to make it worse. Now, when requesting from the browser, every time opening the home page blocks and eventually shows a image

Network inspector:

image

Calls taking a long time:

Body handler added to existing Application class

import io.quarkus.runtime.StartupEvent;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Handler;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
import io.vertx.ext.web.handler.BodyHandler;
import io.vertx.mutiny.core.Vertx;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.event.Observes;
import jakarta.enterprise.inject.Instance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@ApplicationScoped
public class Application {

    private static final Logger LOG = LoggerFactory.getLogger(Application.class);

    public void init(@Observes StartupEvent ev, Vertx vertx, Instance<AbstractVerticle> verticles) {

        verticles.forEach(verticle -> {
            LOG.info("Deploying verticle: {}", verticle.getClass().getSimpleName());
            vertx.deployVerticle(verticle).await().indefinitely();
        });
        LOG.info("Verticles deployed.");
    }

    public void init(@Observes StartupEvent e, Router httpRouteRouter) {
        LOG.info("Adding body handler.");
        Handler<RoutingContext> bodyHandler = BodyHandler.create();
        httpRouteRouter.route().order(Integer.MIN_VALUE + 1).handler(routingContext -> {
            LOG.info("In body handler route...");
            routingContext.request().resume();
            bodyHandler.handle(routingContext);
        });
    }
}

Full application logs:

2023-10-09 10:00:53,178 WARN  [io.qua.dep.ste.ReflectiveHierarchyStep] (build-100) Unable to properly register the hierarchy of the following classes for reflection as they are not in the Jandex index:
    - io.vavr.control.Option (source: <unknown>)
Consider adding them to the index either by creating a Jandex index for your dependency via the Maven plugin, an empty META-INF/beans.xml or quarkus.index-dependency properties.
2023-10-09 10:00:53,304 INFO  [io.qua.dat.dep.dev.DevServicesDatasourceProcessor] (build-42) Dev Services for default datasource (postgresql) started - container ID is aeeb1c551f59
Vaadin application has been deployed and started.
__  ____  __  _____   ___  __ ____  ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
2023-10-09 10:00:53,855 INFO  [io.und.websockets] (Quarkus Main Thread) UT026003: Adding annotated server endpoint class io.company.websocket.ServerSocket for path /ws/{id}

2023-10-09 10:00:53,951 INFO  [io.und.servlet] (Quarkus Main Thread) Initializing AtmosphereFramework
2023-10-09 10:00:54,018 INFO  [com.vaa.bas.dev.sta.DevModeStartupListener] (Quarkus Main Thread) Starting dev-mode updaters in <replaced> folder.
2023-10-09 10:00:54,032 INFO  [com.vaa.flo.ser.fro.sca.FullDependenciesScanner] (Quarkus Main Thread) Visited 72 classes. Took 9 ms.
2023-10-09 10:00:54,032 INFO  [com.vaa.flo.ser.fro.BundleValidationUtil] (Quarkus Main Thread) Checking if a development mode bundle build is needed
2023-10-09 10:00:54,113 INFO  [com.vaa.flo.ser.fro.BundleValidationUtil] (Quarkus Main Thread) A development mode bundle build is not needed
2023-10-09 10:00:54,119 INFO  [com.vaa.flo.ser.fro.TaskCopyFrontendFiles] (ForkJoinPool.commonPool-worker-11) Copying frontend resources from jar files ...
2023-10-09 10:00:54,130 INFO  [com.vaa.flo.ser.fro.TaskCopyFrontendFiles] (ForkJoinPool.commonPool-worker-11) Visited 17 resources. Took 10 ms.
2023-10-09 10:00:54,181 INFO  [com.vaa.flo.ser.sta.ServletDeployer] (Quarkus Main Thread) Skipping automatic servlet registration because there is already a Vaadin servlet with the name com.vaadin.quarkus.QuarkusVaadinServlet
2023-10-09 10:00:54,188 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /*
2023-10-09 10:00:54,188 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler
2023-10-09 10:00:54,198 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation
2023-10-09 10:00:54,200 INFO  [org.atm.uti.ForkJoinPool] (Quarkus Main Thread) Using ForkJoinPool  java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power.
2023-10-09 10:00:54,203 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol
2023-10-09 10:00:54,204 INFO  [org.atm.con.JSR356AsyncSupport] (Quarkus Main Thread) JSR 356 Mapping path /VAADIN/push
2023-10-09 10:00:54,204 INFO  [io.und.websockets] (Quarkus Main Thread) UT026005: Adding programmatic server endpoint class org.atmosphere.container.JSR356Endpoint for path /VAADIN/push
2023-10-09 10:00:54,204 INFO  [io.und.websockets] (Quarkus Main Thread) UT026005: Adding programmatic server endpoint class org.atmosphere.container.JSR356Endpoint for path /VAADIN/push/
2023-10-09 10:00:54,204 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installing Default AtmosphereInterceptors
2023-10-09 10:00:54,204 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support
2023-10-09 10:00:54,204 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor
2023-10-09 10:00:54,204 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support
2023-10-09 10:00:54,204 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support
2023-10-09 10:00:54,204 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Dropping Interceptor org.atmosphere.interceptor.HeartbeatInterceptor
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread)   org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them.
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Broadcaster Shared List Resources: false
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Broadcaster Polling Wait Time 100
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Shared ExecutorService supported: true
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Async I/O Thread Pool Size: 200
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory
2023-10-09 10:00:54,205 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor
2023-10-09 10:00:54,206 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Invoke AtmosphereInterceptor on WebSocket message true
2023-10-09 10:00:54,206 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) HttpSession supported: true
2023-10-09 10:00:54,206 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation
2023-10-09 10:00:54,206 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Undertow - 5.0.2.Final using jakarta.servlet/3.0 and jsr356/WebSocket API
2023-10-09 10:00:54,206 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Atmosphere Framework 3.0.3.slf4jvaadin1 started.
2023-10-09 10:00:54,207 INFO  [org.atm.cpr.AtmosphereFramework] (Quarkus Main Thread) Installed AtmosphereInterceptor  Track Message Size Interceptor using | with priority BEFORE_DEFAULT
2023-10-09 10:00:54,214 INFO  [com.vaa.flo.ser.DefaultDeploymentConfiguration] (Quarkus Main Thread)
Vaadin is running in DEVELOPMENT mode - do not use for production deployments.

The following feature previews are enabled:
- SideNav component (Production ready but tweaks to at least the internal DOM will still take place)

2023-10-09 10:00:54,456 INFO  [org.fly.cor.int.lic.VersionPrinter] (Quarkus Main Thread) Flyway Community Edition 9.21.0 by Redgate
2023-10-09 10:00:54,457 INFO  [org.fly.cor.int.lic.VersionPrinter] (Quarkus Main Thread) See release notes here: https://rd.gt/416ObMi
2023-10-09 10:00:54,457 INFO  [org.fly.cor.int.lic.VersionPrinter] (Quarkus Main Thread)
2023-10-09 10:00:54,460 INFO  [org.fly.cor.int.dat.bas.BaseDatabaseType] (Quarkus Main Thread) Database: jdbc:postgresql://localhost:5432/quarkus (PostgreSQL 14.8)
2023-10-09 10:00:54,477 INFO  [org.fly.cor.int.com.DbValidate] (Quarkus Main Thread) Successfully validated 7 migrations (execution time 00:00.008s)
2023-10-09 10:00:54,498 INFO  [org.fly.cor.int.com.DbMigrate] (Quarkus Main Thread) Current version of schema "public": 1.0.6
2023-10-09 10:00:54,500 INFO  [org.fly.cor.int.com.DbMigrate] (Quarkus Main Thread) Schema "public" is up to date. No migration necessary.
2023-10-09 10:00:54,718 INFO  [io.company.ene.ocp.Application] (Quarkus Main Thread) Adding body handler.
2023-10-09 10:00:54,728 ERROR [io.qua.hib.orm.run.sch.SchemaManagementIntegrator] (Hibernate post-boot validation thread for <default>) Failed to validate Schema: Schema-validation: wrong column type encountered in column [registration_status] in table [charge_point]; found [varchar (Types#VARCHAR)], but expecting [smallint (Types#TINYINT)]
2023-10-09 10:00:54,732 INFO  [io.company.ene.ocp.Application] (Quarkus Main Thread) Custom codecs registered.
2023-10-09 10:00:54,733 INFO  [io.company.ene.ocp.Application] (Quarkus Main Thread) Deploying verticle: XXXVerticle_ClientProxy
2023-10-09 10:00:54,739 INFO  [io.company.ene.ocp.XXXVerticle] (vert.x-eventloop-thread-1) Starting XXXVerticle
2023-10-09 10:00:54,741 INFO  [io.company.ene.ocp.Application] (Quarkus Main Thread) Deploying verticle: YYYVerticle_ClientProxy
2023-10-09 10:00:54,741 INFO  [io.company.ene.ocp.YYYVerticle] (vert.x-eventloop-thread-2) Started
2023-10-09 10:00:54,742 INFO  [io.company.ene.ocp.Application] (Quarkus Main Thread) Verticles deployed.
2023-10-09 10:00:54,755 ERROR [io.qua.hib.orm.run.sch.SchemaManagementIntegrator] (Hibernate post-boot validation thread for <default>) The following SQL may resolve the database issues, as generated by the Hibernate schema migration tool. WARNING: You must manually verify this SQL is correct, this is a best effort guess, do not copy/paste it without verifying that it does what you expect.

2023-10-09 10:00:54,768 INFO  [io.quarkus] (Quarkus Main Thread) code-with-quarkus 1.0.0-SNAPSHOT on JVM (powered by Quarkus 3.3.1) started in 2.326s. Listening on: http://localhost:8080
2023-10-09 10:00:54,768 INFO  [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated.
2023-10-09 10:00:54,768 INFO  [io.quarkus] (Quarkus Main Thread) Installed features: [agroal, cdi, flyway, hibernate-orm, hibernate-orm-panache, jdbc-postgresql, micrometer, narayana-jta, reactive-pg-client, resteasy-reactive, servlet, smallrye-context-propagation, smallrye-health, vaadin-quarkus, vertx, websockets, websockets-client]
2023-10-09 10:00:56,626 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:00:56,640 INFO  [com.vaa.qua.QuarkusInstantiator] (executor-thread-1) Can't find any @VaadinServiceScoped bean implementing 'I18NProvider'. Cannot use CDI beans for I18N, falling back to the default behavior.
2023-10-09 10:01:00,301 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:01:10,411 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:01:10,417 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:01:10,417 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:01:10,421 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:01:10,436 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:01:10,438 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:01:10,473 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:01:10,476 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:01:10,481 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:01:10,553 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:01:10,616 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:01:11,023 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:02:09,867 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:02:11,044 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-2) : java.io.IOException: Read timeout
    at io.undertow.vertx.VertxHttpExchange.readBlocking(VertxHttpExchange.java:505)
    at io.undertow.server.HttpServerExchange.readBlocking(HttpServerExchange.java:944)
    at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:178)
    at io.undertow.servlet.spec.ServletInputStreamImpl.read(ServletInputStreamImpl.java:158)
    at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270)
    at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313)
    at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
    at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)
    at java.base/java.io.BufferedReader.read1(BufferedReader.java:211)
    at java.base/java.io.BufferedReader.read(BufferedReader.java:287)
    at java.base/java.io.Reader.read(Reader.java:250)
    at com.vaadin.flow.server.communication.ServerRpcHandler.getMessage(ServerRpcHandler.java:474)
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:252)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1529)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at io.quarkus.micrometer.runtime.binder.vertx.VertxMeterBinderUndertowServletFilter.doFilter(VertxMeterBinderUndertowServletFilter.java:28)
    at jakarta.servlet.http.HttpFilter.doFilter(HttpFilter.java:97)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:624)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:124)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:439)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:577)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)

2023-10-09 10:02:11,067 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:02:11,247 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:02:23,034 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:02:25,908 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:02:25,919 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:02:25,947 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:02:25,954 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:02:25,969 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:02:25,979 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:02:25,986 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:02:26,107 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:02:26,180 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:02:26,188 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:02:58,845 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:03:11,063 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-5) : java.io.IOException: java.io.IOException: io.vertx.core.http.HttpClosedException: Connection was closed
    at io.undertow.vertx.VertxHttpExchange.readBlocking(VertxHttpExchange.java:516)
    at io.undertow.server.HttpServerExchange.readBlocking(HttpServerExchange.java:944)
    at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:178)
    at io.undertow.servlet.spec.ServletInputStreamImpl.read(ServletInputStreamImpl.java:158)
    at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270)
    at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313)
    at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
    at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)
    at java.base/java.io.BufferedReader.read1(BufferedReader.java:211)
    at java.base/java.io.BufferedReader.read(BufferedReader.java:287)
    at java.base/java.io.Reader.read(Reader.java:250)
    at com.vaadin.flow.server.communication.ServerRpcHandler.getMessage(ServerRpcHandler.java:474)
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:252)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1529)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at io.quarkus.micrometer.runtime.binder.vertx.VertxMeterBinderUndertowServletFilter.doFilter(VertxMeterBinderUndertowServletFilter.java:28)
    at jakarta.servlet.http.HttpFilter.doFilter(HttpFilter.java:97)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:624)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:124)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:439)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:577)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.IOException: io.vertx.core.http.HttpClosedException: Connection was closed
    at io.undertow.vertx.VertxHttpExchange$3.handle(VertxHttpExchange.java:201)
    at io.undertow.vertx.VertxHttpExchange$3.handle(VertxHttpExchange.java:188)
    at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:264)
    at io.vertx.core.http.impl.Http1xServerResponse.handleClosed(Http1xServerResponse.java:691)
    at io.vertx.core.http.impl.Http1xServerResponse.handleException(Http1xServerResponse.java:664)
    at io.vertx.core.http.impl.Http1xServerRequest.handleException(Http1xServerRequest.java:649)
    at io.vertx.core.http.impl.Http1xServerConnection.lambda$handleClosed$6(Http1xServerConnection.java:487)
    at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:76)
    at io.vertx.core.impl.DuplicatedContext.execute(DuplicatedContext.java:153)
    at io.vertx.core.impl.ContextInternal.execute(ContextInternal.java:201)
    at io.vertx.core.http.impl.Http1xServerConnection.handleClosed(Http1xServerConnection.java:486)
    at io.vertx.core.net.impl.VertxHandler.channelInactive(VertxHandler.java:143)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:303)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)
    at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:81)
    at io.netty.handler.timeout.IdleStateHandler.channelInactive(IdleStateHandler.java:277)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:303)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChndlerContext.java:281)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)
    at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:411)
    at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:376)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:301)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
    at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901)
    at io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:813)
    at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    ... 2 more
Caused by: io.vertx.core.http.HttpClosedException: Connection was closed

2023-10-09 10:03:26,195 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-6) : java.io.IOException: Read timeout
    at io.undertow.vertx.VertxHttpExchange.readBlocking(VertxHttpExchange.java:505)
    at io.undertow.server.HttpServerExchange.readBlocking(HttpServerExchange.java:944)
    at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:178)
    at io.undertow.servlet.spec.ServletInputStreamImpl.read(ServletInputStreamImpl.java:158)
    at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270)
    at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313)
    at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
    at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)
    at java.base/java.io.BufferedReader.read1(BufferedReader.java:211)
    at java.base/java.io.BufferedReader.read(BufferedReader.java:287)
    at java.base/java.io.Reader.read(Reader.java:250)
    at com.vaadin.flow.server.communication.ServerRpcHandler.getMessage(ServerRpcHandler.java:474)
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:252)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1529)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at io.quarkus.micrometer.runtime.binder.vertx.VertxMeterBinderUndertowServletFilter.doFilter(VertxMeterBinderUndertowServletFilter.java:28)
    at jakarta.servlet.http.HttpFilter.doFilter(HttpFilter.java:97)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:624)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:124)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:439)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:577)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)

2023-10-09 10:03:26,234 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:04:33,718 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:04:33,727 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:04:33,732 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:04:33,747 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:04:33,752 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:04:36,656 WARN  [io.ver.cor.imp.BlockedThreadChecker] (vertx-blocked-thread-checker) Thread Thread[vert.x-eventloop-thread-4,5,main] has been blocked for 2907 ms, time limit is 2000 ms: io.vertx.core.VertxException: Thread blocked
    at java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211)
    at java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:715)
    at java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:938)
    at java.base@17.0.6/java.util.concurrent.locks.ReentrantLock$Sync.lock(ReentrantLock.java:153)
    at java.base@17.0.6/java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:322)
    at com.vaadin.flow.server.VaadinService.lockSession(VaadinService.java:765)
    at com.vaadin.flow.server.VaadinService.findOrCreateVaadinSession(VaadinService.java:812)
    at com.vaadin.flow.server.VaadinService.findVaadinSession(VaadinService.java:657)
    at com.vaadin.flow.server.communication.PushHandler.callWithServiceAndSession(PushHandler.java:211)
    at com.vaadin.flow.server.communication.PushHandler.onConnect(PushHandler.java:565)
    at com.vaadin.flow.server.communication.PushAtmosphereHandler.onConnect(PushAtmosphereHandler.java:103)
    at com.vaadin.flow.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.java:77)
    at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:217)
    at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:103)
    at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:67)
    at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2284)
    at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:574)
    at org.atmosphere.websocket.DefaultWebSocketProcessor.open(DefaultWebSocketProcessor.java:213)
    at org.atmosphere.container.JSR356Endpoint.onOpen(JSR356Endpoint.java:254)
    at io.undertow.websockets.EndpointSessionHandler.connected(EndpointSessionHandler.java:119)
    at io.undertow.websockets.vertx.VertxWebSocketHandler$1.accept(VertxWebSocketHandler.java:120)
    at io.undertow.websockets.vertx.VertxWebSocketHandler$1.accept(VertxWebSocketHandler.java:117)
    at io.undertow.websockets.handshake.Handshake$1.accept(Handshake.java:147)
    at io.undertow.websockets.vertx.VertxWebSocketHttpExchange$1.handle(VertxWebSocketHttpExchange.java:129)
    at io.undertow.websockets.vertx.VertxWebSocketHttpExchange$1.handle(VertxWebSocketHttpExchange.java:121)
    at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141)
    at io.vertx.core.impl.future.FutureBase.lambda$emitSuccess$0(FutureBase.java:54)
    at io.vertx.core.impl.future.FutureBase$$Lambda$2062/0x0000000800f1d000.run(Unknown Source)
    at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:86)
    at io.vertx.core.impl.DuplicatedContext.execute(DuplicatedContext.java:163)
    at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:51)
    at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211)
    at io.vertx.core.impl.future.PromiseImpl.tryComplete(PromiseImpl.java:23)
    at io.vertx.core.Promise.complete(Promise.java:66)
    at io.vertx.core.impl.future.PromiseImpl.operationComplete(PromiseImpl.java:65)
    at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:583)
    at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:559)
    at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
    at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
    at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:625)
    at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:105)
    at io.netty.util.internal.PromiseNotificationUtil.trySuccess(PromiseNotificationUtil.java:48)
    at io.netty.channel.ChannelOutboundBuffer.safeSuccess(ChannelOutboundBuffer.java:728)
    at io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:283)
    at io.netty.channel.ChannelOutboundBuffer.removeBytes(ChannelOutboundBuffer.java:363)
    at io.netty.channel.socket.nio.NioSocketChannel.doWrite(NioSocketChannel.java:421)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:931)
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:354)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:895)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1372)
    at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:921)
    at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:907)
    at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:893)
    at io.vertx.core.net.impl.ConnectionBase.endReadAndFlush(ConnectionBase.java:145)
    at io.vertx.core.net.impl.VertxHandler.channelReadComplete(VertxHandler.java:148)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:484)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:463)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelReadComplete(AbstractChannelHandlerContext.java:456)
    at io.netty.handler.timeout.IdleStateHandler.channelReadComplete(IdleStateHandler.java:295)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:484)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:463)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelReadComplete(AbstractChannelHandlerContext.java:456)
    at io.netty.handler.codec.ByteToMessageDecoder.channelReadComplete(ByteToMessageDecoder.java:358)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:486)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:463)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelReadComplete(AbstractChannelHandlerContext.java:456)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelReadComplete(DefaultChannelPipeline.java:1415)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:482)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete(AbstractChannelHandlerContext.java:463)
    at io.netty.channel.DefaultChannelPipeline.fireChannelReadComplete(DefaultChannelPipeline.java:925)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:171)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

2023-10-09 10:05:07,006 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:05:33,731 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-5) : java.io.IOException: Read timeout
    at io.undertow.vertx.VertxHttpExchange.readBlocking(VertxHttpExchange.java:505)
    at io.undertow.server.HttpServerExchange.readBlocking(HttpServerExchange.java:944)
    at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:178)
    at io.undertow.servlet.spec.ServletInputStreamImpl.read(ServletInputStreamImpl.java:158)
    at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270)
    at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313)
    at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
    at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)
    at java.base/java.io.BufferedReader.read1(BufferedReader.java:211)
    at java.base/java.io.BufferedReader.read(BufferedReader.java:287)
    at java.base/java.io.Reader.read(Reader.java:250)
    at com.vaadin.flow.server.communication.ServerRpcHandler.getMessage(ServerRpcHandler.java:474)
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:252)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1529)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at io.quarkus.micrometer.runtime.binder.vertx.VertxMeterBinderUndertowServletFilter.doFilter(VertxMeterBinderUndertowServletFilter.java:28)
    at jakarta.servlet.http.HttpFilter.doFilter(HttpFilter.java:97)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:624)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:124)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:439)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:577)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)

2023-10-09 10:05:33,783 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:05:33,789 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:05:33,793 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:05:33,916 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:05:33,988 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:05:33,996 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:06:08,161 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-3) In body handler route...
2023-10-09 10:06:33,741 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-6) : java.io.IOException: java.io.IOException: io.vertx.core.http.HttpClosedException: Connection was closed
    at io.undertow.vertx.VertxHttpExchange.readBlocking(VertxHttpExchange.java:516)
    at io.undertow.server.HttpServerExchange.readBlocking(HttpServerExchange.java:944)
    at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:178)
    at io.undertow.servlet.spec.ServletInputStreamImpl.read(ServletInputStreamImpl.java:158)
    at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270)
    at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313)
    at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
    at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)
    at java.base/java.io.BufferedReader.read1(BufferedReader.java:211)
    at java.base/java.io.BufferedReader.read(BufferedReader.java:287)
    at java.base/java.io.Reader.read(Reader.java:250)
    at com.vaadin.flow.server.communication.ServerRpcHandler.getMessage(ServerRpcHandler.java:474)
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:252)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1529)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at io.quarkus.micrometer.runtime.binder.vertx.VertxMeterBinderUndertowServletFilter.doFilter(VertxMeterBinderUndertowServletFilter.java:28)
    at jakarta.servlet.http.HttpFilter.doFilter(HttpFilter.java:97)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:624)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:124)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:439)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:577)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.IOException: io.vertx.core.http.HttpClosedException: Connection was closed
    at io.undertow.vertx.VertxHttpExchange$3.handle(VertxHttpExchange.java:201)
    at io.undertow.vertx.VertxHttpExchange$3.handle(VertxHttpExchange.java:188)
    at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:264)
    at io.vertx.core.http.impl.Http1xServerResponse.handleClosed(Http1xServerResponse.java:691)
    at io.vertx.core.http.impl.Http1xServerResponse.handleException(Http1xServerResponse.java:664)
    at io.vertx.core.http.impl.Http1xServerRequest.handleException(Http1xServerRequest.java:649)
    at io.vertx.core.http.impl.Http1xServerConnection.lambda$handleClosed$6(Http1xServerConnection.java:487)
    at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:76)
    at io.vertx.core.impl.DuplicatedContext.execute(DuplicatedContext.java:153)
    at io.vertx.core.impl.ContextInternal.execute(ContextInternal.java:201)
    at io.vertx.core.http.impl.Http1xServerConnection.handleClosed(Http1xServerConnection.java:486)
    at io.vertx.core.net.impl.VertxHandler.channelInactive(VertxHandler.java:143)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:303)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)
    at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:81)
    at io.netty.handler.timeout.IdleStateHandler.channelInactive(IdleStateHandler.java:277)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:303)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChndlerContext.java:281)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)
    at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:411)
    at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:376)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:301)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
    at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901)
    at io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:813)
    at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    ... 2 more
Caused by: io.vertx.core.http.HttpClosedException: Connection was closed

2023-10-09 10:06:33,795 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
2023-10-09 10:07:33,801 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-6) : java.io.IOException: Read timeout
    at io.undertow.vertx.VertxHttpExchange.readBlocking(VertxHttpExchange.java:505)
    at io.undertow.server.HttpServerExchange.readBlocking(HttpServerExchange.java:944)
    at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:178)
    at io.undertow.servlet.spec.ServletInputStreamImpl.read(ServletInputStreamImpl.java:158)
    at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270)
    at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313)
    at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
    at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)
    at java.base/java.io.BufferedReader.read1(BufferedReader.java:211)
    at java.base/java.io.BufferedReader.read(BufferedReader.java:287)
    at java.base/java.io.Reader.read(Reader.java:250)
    at com.vaadin.flow.server.communication.ServerRpcHandler.getMessage(ServerRpcHandler.java:474)
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:252)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1529)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at io.quarkus.micrometer.runtime.binder.vertx.VertxMeterBinderUndertowServletFilter.doFilter(VertxMeterBinderUndertowServletFilter.java:28)
    at jakarta.servlet.http.HttpFilter.doFilter(HttpFilter.java:97)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:624)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:124)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:439)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:577)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)

2023-10-09 10:07:33,845 INFO  [io.company.ene.ocp.Application] (vert.x-eventloop-thread-4) In body handler route...
mcollovati commented 1 year ago

The body handler configured by Quarkus when using the RequireBodyHandlerBuildItem is a bit more sophisticated. I wonder if this can make a difference.

    private static Handler<RoutingContext> configureAndGetBody(Optional<MemorySize> maxBodySize, BodyConfig bodyConfig) {
        BodyHandler bodyHandler = BodyHandler.create();
        if (maxBodySize.isPresent()) {
            bodyHandler.setBodyLimit(maxBodySize.get().asLongValue());
        }
        bodyHandler.setHandleFileUploads(bodyConfig.handleFileUploads);
        bodyHandler.setUploadsDirectory(bodyConfig.uploadsDirectory);
        bodyHandler.setDeleteUploadedFilesOnEnd(bodyConfig.deleteUploadedFilesOnEnd);
        bodyHandler.setMergeFormAttributes(bodyConfig.mergeFormAttributes);
        bodyHandler.setPreallocateBodyBuffer(bodyConfig.preallocateBodyBuffer);
        return new Handler<RoutingContext>() {
            @Override
            public void handle(RoutingContext event) {
                if (!Context.isOnEventLoopThread()) {
                    ((ConnectionBase) event.request().connection()).channel().eventLoop().execute(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                //this can happen if blocking authentication is involved for get requests
                                if (!event.request().isEnded()) {
                                    event.request().resume();
                                    if (CAN_HAVE_BODY.contains(event.request().method())) {
                                        bodyHandler.handle(event);
                                    } else {
                                        event.next();
                                    }
                                } else {
                                    event.next();
                                }
                            } catch (Throwable t) {
                                event.fail(t);
                            }
                        }
                    });
                } else {
                    if (!event.request().isEnded()) {
                        event.request().resume();
                    }
                    if (CAN_HAVE_BODY.contains(event.request().method())) {
                        bodyHandler.handle(event);
                    } else {
                        event.next();
                    }
                }
            }
        };
    }
DomenicDev commented 1 year ago

I just started with Quarkus and Vaadin and experienced the same issue. As already mentioned, it can be easily reproduced by just hitting the refresh button a couple of times.

2023-11-11 18:35:30,382 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-5) : java.lang.UnsupportedOperationException: Unexpected message id from the client. Expected sync id: 0, got 1. more details logged on DEBUG level.
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:313)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1522)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:626)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.undertow.server.handlers.CanonicalPathHandler.handleRequest(CanonicalPathHandler.java:49)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:125)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:441)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:582)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:833)

EDIT: I also experience this issue when using Spring Boot, so it doesn't seem to be directly related to Quarkus.

java.lang.UnsupportedOperationException: Unexpected message id from the client. Expected sync id: 2, got 3. more details logged on DEBUG level.
        at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:313) ~[flow-server-24.2.2.jar!/:24.2.2]
        at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114) ~[flow-server-24.2.2.jar!/:24.2.2]
        at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) ~[flow-server-24.2.2.jar!/:24.2.2]
mcollovati commented 10 months ago

@diversit could you please verify if running request body handler only on Flow framework requests helps?

@ApplicationScoped
public class BodyHandlerWorkaround {

    public void init(@Observes StartupEvent e, Router httpRouteRouter) {
        Handler<RoutingContext> bodyHandler = BodyHandler.create();
        httpRouteRouter.route().order(Integer.MIN_VALUE + 1).handler(routingContext -> {
            HttpServerRequest request = routingContext.request();
            if (request.params().contains(ApplicationConstants.REQUEST_TYPE_PARAMETER) &&
                    !request.uri().startsWith("/VAADIN/") && !request.uri().startsWith("/HILLA/")
            ) {
                request.resume();
                bodyHandler.handle(routingContext);
            } else {
                routingContext.next();
            }
        });
    }
}
mcollovati commented 10 months ago

If the workaround works, we can apply it in the extension, perhaps activated/deactivated by a configuration property so it should be easy to opt-in or opt-out, depending on what we would choose as default behavior.

diversit commented 10 months ago

I have tried the suggested BodyHandlerWorkaround but I'm sorry to say it is not an improvement.

This is the exception after startup on first request:

2023-12-22 08:38:38,660 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-4) : java.io.IOException: java.io.IOException: io.vertx.core.http.HttpClosedException: Connection was closed
    at io.undertow.vertx.VertxHttpExchange.readBlocking(VertxHttpExchange.java:516)
    at io.undertow.server.HttpServerExchange.readBlocking(HttpServerExchange.java:944)
    at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:178)
    at io.undertow.servlet.spec.ServletInputStreamImpl.read(ServletInputStreamImpl.java:158)
    at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:329)
    at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:372)
    at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:215)
    at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:169)
    at java.base/java.io.InputStreamReader.read(InputStreamReader.java:188)
    at java.base/java.io.BufferedReader.read1(BufferedReader.java:223)
    at java.base/java.io.BufferedReader.implRead(BufferedReader.java:314)
    at java.base/java.io.BufferedReader.read(BufferedReader.java:296)
    at java.base/java.io.Reader.read(Reader.java:265)
    at com.vaadin.flow.server.communication.ServerRpcHandler.getMessage(ServerRpcHandler.java:474)
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:252)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1522)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at io.quarkus.micrometer.runtime.binder.vertx.VertxMeterBinderUndertowServletFilter.doFilter(VertxMeterBinderUndertowServletFilter.java:28)
    at jakarta.servlet.http.HttpFilter.doFilter(HttpFilter.java:97)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:626)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.undertow.server.handlers.CanonicalPathHandler.handleRequest(CanonicalPathHandler.java:49)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:125)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:441)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:582)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.io.IOException: io.vertx.core.http.HttpClosedException: Connection was closed
    at io.undertow.vertx.VertxHttpExchange$3.handle(VertxHttpExchange.java:201)
    at io.undertow.vertx.VertxHttpExchange$3.handle(VertxHttpExchange.java:188)
    at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:277)
    at io.vertx.core.http.impl.Http1xServerResponse.handleClosed(Http1xServerResponse.java:685)
    at io.vertx.core.http.impl.Http1xServerResponse.handleException(Http1xServerResponse.java:658)
    at io.vertx.core.http.impl.Http1xServerRequest.handleException(Http1xServerRequest.java:663)
    at io.vertx.core.http.impl.Http1xServerConnection.lambda$handleClosed$7(Http1xServerConnection.java:514)
    at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:76)
    at io.vertx.core.impl.DuplicatedContext.execute(DuplicatedContext.java:174)
    at io.vertx.core.impl.ContextInternal.execute(ContextInternal.java:214)
    at io.vertx.core.http.impl.Http1xServerConnection.handleClosed(Http1xServerConnection.java:513)
    at io.vertx.core.net.impl.VertxHandler.channelInactive(VertxHandler.java:143)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:303)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)
    at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:81)
    at io.netty.handler.timeout.IdleStateHandnnelInactive(IdleStateHandler.java:277)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:303)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)
    at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:411)
    at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:376)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:301)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)
    at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901)
    at io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:813)
    at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    ... 2 more
Caused by: io.vertx.core.http.HttpClosedException: Connection was closed

2023-12-22 08:38:43,708 ERROR [com.vaa.flo.ser.DefaultErrorHandler] (executor-thread-4) : java.io.IOException: Read timeout
    at io.undertow.vertx.VertxHttpExchange.readBlocking(VertxHttpExchange.java:505)
    at io.undertow.server.HttpServerExchange.readBlocking(HttpServerExchange.java:944)
    at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:178)
    at io.undertow.servlet.spec.ServletInputStreamImpl.read(ServletInputStreamImpl.java:158)
    at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:329)
    at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:372)
    at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:215)
    at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:169)
    at java.base/java.io.InputStreamReader.read(InputStreamReader.java:188)
    at java.base/java.io.BufferedReader.read1(BufferedReader.java:223)
    at java.base/java.io.BufferedReader.implRead(BufferedReader.java:314)
    at java.base/java.io.BufferedReader.read(BufferedReader.java:296)
    at java.base/java.io.Reader.read(Reader.java:265)
    at com.vaadin.flow.server.communication.ServerRpcHandler.getMessage(ServerRpcHandler.java:474)
    at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:252)
    at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:114)
    at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1522)
    at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:398)
    at com.vaadin.quarkus.QuarkusVaadinServlet.service(QuarkusVaadinServlet.java:84)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at io.quarkus.micrometer.runtime.binder.vertx.VertxMeterBinderUndertowServletFilter.doFilter(VertxMeterBinderUndertowServletFilter.java:28)
    at jakarta.servlet.http.HttpFilter.doFilter(HttpFilter.java:97)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:63)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:67)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:133)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:65)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:247)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:56)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:111)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:108)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:626)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:152)
    at io.undertow.server.handlers.CanonicalPathHandler.handleRequest(CanonicalPathHandler.java:49)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$1.handleRequest(UndertowDeploymentRecorder.java:125)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:284)
    at io.undertow.server.DefaultExchangeHandler.handle(DefaultExchangeHandler.java:18)
    at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$5$2.run(UndertowDeploymentRecorder.java:441)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
    at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:582)
    at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
    at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
    at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:1583)

The complete UI does not work anymore. Application is running Quarkus 3.6.3 and Vaadin 24.2.4.

Actually, without this workaround, the application was running quite well.

mcollovati commented 10 months ago

Thanks for your reply. Unfortunately, currently I'm unable to replicate the issue in the starter project with the workaround in place.

mcollovati commented 10 months ago

I can see several similar issues also on quarkus repository, mostly happen with quarkus-undertow in combination with other extensions.

Dudeplayz commented 3 days ago

@diversit could you please verify if running request body handler only on Flow framework requests helps?

@ApplicationScoped
public class BodyHandlerWorkaround {

    public void init(@Observes StartupEvent e, Router httpRouteRouter) {
        Handler<RoutingContext> bodyHandler = BodyHandler.create();
        httpRouteRouter.route().order(Integer.MIN_VALUE + 1).handler(routingContext -> {
            HttpServerRequest request = routingContext.request();
            if (request.params().contains(ApplicationConstants.REQUEST_TYPE_PARAMETER) &&
                    !request.uri().startsWith("/VAADIN/") && !request.uri().startsWith("/HILLA/")
            ) {
                request.resume();
                bodyHandler.handle(routingContext);
            } else {
                routingContext.next();
            }
        });
    }
}

Applying the patch fixes my upload issues and at the moment there are not other side effects I can see. Also the rapid page reload works fine for me. I see it as valid fix.