Hello,
I’m hoping someone in this forum has figured out how to run Vaadin copilot with Quarkus.
Here are the versions I’m using:
IntelliJ IDEA 2024.3.5 (Ultimate Edition)
Vaadin plugin 1.4.10 (with plus subscription)
graalvm64-21.0.2
Quarkus 3.21.1
Vaadin 24.7.0
To recreate run this quarkus cli command:
quarkus create app --maven -o=quarkus-vaadin --extension=com.vaadin:vaadin-quarkus-extension org.acme:vaadin-with-quarkus:1.0.0
I’ve tried running it with the IntelliJ debug and with quarkus dev.
Thanks
MD
Matti
(Matti Tahvonen)
April 15, 2025, 12:24pm
2
Hi!
Did you get anything to work or did it stop on startup?
I tested with a fresh project (24.7.1) and to me it worked to “some extent”. I tried: open the visual editor part, dragged a new component to the layout. There seems to be some issue with reloading the content after changes (kind of gets stuck, but after reload the changes appeared). Got also this stacktrace that might be related:
2025-04-15 15:15:18,885 WARN [com.vaa.cop.cus.CustomComponents] (vert.x-eventloop-thread-0) Class org.acme.example.MainView not found: java.lang.ClassNotFoundException: org.acme.example.MainView
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:542)
at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:517)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:462)
at java.base/java.lang.Class.forName(Class.java:453)
at com.vaadin.copilot.customcomponent.CustomComponents.isCustomComponent(CustomComponents.java:85)
at com.vaadin.copilot.customcomponent.CustomComponents.isCustomComponent(CustomComponents.java:70)
at com.vaadin.copilot.customcomponent.CustomComponentHelper.lambda$generateResponse$0(CustomComponentHelper.java:50)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:196)
at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:722)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:636)
at com.vaadin.copilot.customcomponent.CustomComponentHelper.generateResponse(CustomComponentHelper.java:51)
at com.vaadin.copilot.ProjectFileHandler.handleMessage(ProjectFileHandler.java:102)
at com.vaadin.copilot.CopilotSession.handleMessageSync(CopilotSession.java:139)
at com.vaadin.copilot.CopilotSession.handleMessage(CopilotSession.java:114)
at com.vaadin.copilot.Copilot.handleMessage(Copilot.java:62)
at com.vaadin.base.devserver.DebugWindowConnection.onMessage(DebugWindowConnection.java:336)
at com.vaadin.flow.server.communication.PushHandler.handleDebugWindowMessage(PushHandler.java:669)
at com.vaadin.flow.server.communication.PushHandler.callWithServiceAndSession(PushHandler.java:237)
at com.vaadin.flow.server.communication.PushHandler.onMessage(PushHandler.java:645)
at com.vaadin.flow.server.communication.PushAtmosphereHandler.onMessage(PushAtmosphereHandler.java:90)
at com.vaadin.flow.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.java:79)
Matthew.D
(Matthew Demerath)
April 15, 2025, 12:51pm
3
Hi Matti,
You are seeing the same issue I am. It will alter the source document but will not dynamically load it.
Tatu2
(Tatu Lund)
March 31, 2026, 5:20am
4
It seems to be different problem than this JNA dependency conflict reported here earlier.
opened 10:43AM - 11 Sep 24 UTC
closed 03:20PM - 11 Sep 24 UTC
When running a Vaadin Quarkus application in dev-mode, Copilot cannot be used.
… The cause seems to be the indirect use of JNA made by copilot `AnalyticsClient` class.
<details>
<summary> Stack trace</summary>
```
2024-09-11 12:31:33,487 WARN [org.atm.web.DefaultWebSocketProcessor] (vert.x-eventloop-thread-0) Failed invoking AtmosphereFramework.doCometSupport(): java.lang.NoClassDefFoundError: Could not initialize class oshi.software.os.linux.LinuxOperatingSystem
at oshi.hardware.platform.linux.LinuxCentralProcessor.initProcessorCounts(LinuxCentralProcessor.java:171)
at oshi.hardware.common.AbstractCentralProcessor.<init>(AbstractCentralProcessor.java:67)
at oshi.hardware.platform.linux.LinuxCentralProcessor.<init>(LinuxCentralProcessor.java:58)
at oshi.hardware.platform.linux.LinuxHardwareAbstractionLayer.createProcessor(LinuxHardwareAbstractionLayer.java:43)
at oshi.util.Memoizer$1.get(Memoizer.java:61)
at oshi.hardware.common.AbstractHardwareAbstractionLayer.getProcessor(AbstractHardwareAbstractionLayer.java:48)
at com.vaadin.pro.licensechecker.MachineId.getComputerId(MachineId.java:52)
at com.vaadin.pro.licensechecker.MachineId.get(MachineId.java:34)
at com.vaadin.copilot.analytics.AnalyticsClient.<init>(AnalyticsClient.java:34)
at com.vaadin.copilot.Copilot.handleConnect(Copilot.java:74)
at com.vaadin.base.devserver.DebugWindowConnection.handleConnect(DebugWindowConnection.java:208)
at com.vaadin.base.devserver.DebugWindowConnection.onConnect(DebugWindowConnection.java:188)
at com.vaadin.flow.server.communication.PushHandler.lambda$onConnect$4(PushHandler.java:623)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at com.vaadin.flow.server.communication.PushHandler.lambda$onConnect$5(PushHandler.java:622)
at com.vaadin.flow.server.communication.PushHandler.callWithServiceAndSession(PushHandler.java:235)
at com.vaadin.flow.server.communication.PushHandler.onConnect(PushHandler.java:619)
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.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.concurstThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.NoClassDefFoundError: com/sun/jna/platform/unix/LibCAPI$size_t$ByReference [in thread "Quarkus Main Thread"]
at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402)
at java.base/java.lang.Class.privateGetPublicMethods(Class.java:3427)
at java.base/java.lang.Class.privateGetPublicMethods(Class.java:3439)
at java.base/java.lang.Class.getMethods(Class.java:2019)
at java.base/java.lang.reflect.Proxy$ProxyBuilder.referencedTypes(Proxy.java:744)
at java.base/java.lang.reflect.Proxy$ProxyBuilder.<init>(Proxy.java:645)
at java.base/java.lang.reflect.Proxy$ProxyBuilder.<init>(Proxy.java:656)
at java.base/java.lang.reflect.Proxy.lambda$getProxyConstructor$0(Proxy.java:429)
at java.base/jdk.internal.loader.AbstractClassLoaderValue$Memoizer.get(AbstractClassLoaderValue.java:329)
at java.base/jdk.internal.loader.AbstractClassLoaderValue.computeIfAbsent(AbstractClassLoaderValue.java:205)
at java.base/java.lang.reflect.Proxy.getProxyConstructor(Proxy.java:427)
at java.base/java.lang.reflect.Proxy.newProxyInstance(Proxy.java:1037)
at com.sun.jna.Native.load(Native.java:598)
at com.sun.jna.Native.load(Native.java:570)
at oshi.jna.platform.linux.LinuxLibc.<clinit>(LinuxLibc.java:22)
at oshi.software.os.linux.LinuxOperatingSystem.<clinit>(LinuxOperatingSystem.java:98)
at oshi.hardware.platform.linux.LinuxCentralProcessor.initProcessorCounts(LinuxCentralProcessor.java:171)
at oshi.hardware.common.AbstractCentralProcessor.<init>(AbstractCentralProcessor.java:67)
at oshi.hardware.platform.linux.LinuxCentralProcessor.<init>(LinuxCentralProcessor.java:58)
at oshi.hardware.platform.linux.LinuxHardwareAbstractionLayer.createProcessor(LinuxHardwareAbstractionLayer.java:43)
at oshi.util.Memoizer$1.get(Memoizer.java:61)
at oshi.hardware.common.AbstractHardwareAbstractionLayer.getProcessor(AbstractHardwareAbstractionLayer.java:48)
at com.vaadin.pro.licensechecker.MachineId.getComputerId(MachineId.java:52)
at com.vaadin.pro.licensechecker.MachineId.get(MachineId.java:34)
at com.vaadin.base.devserver.stats.DevModeUsageStatistics.lambda$trackGlobalData$0(DevModeUsageStatistics.java:117)
at com.vaadin.base.devserver.stats.StatisticsStorage.lambda$update$f902d37c$1(StatisticsStorage.java:95)
at com.vaadin.base.devserver.stats.StatisticsStorage.access(StatisticsStorage.java:79)
at com.vaadin.base.devserver.stats.StatisticsStorage.update(StatisticsStorage.java:91)
at com.vaadin.base.devserver.stats.DevModeUsageStatistics.trackGlobalData(DevModeUsageStatistics.java:105)
at com.vaadin.base.devserver.stats.DevModeUsageStatistics.lambda$init$d066c0ae$1(DevModeUsageStatistics.java:97)
at com.vaadin.base.devserver.stats.StatisticsStorage.access(StatisticsStorage.java:79)
at com.vaadin.base.devserver.stats.DevModeUsageStatistics.init(DevModeUsageStatistics.java:92)
at com.vaadin.base.devserver.startup.DevModeInitializer.initDevModeHandler(DevModeInitializer.java:203)
at com.vaadin.base.devserver.DevModeHandlerManagerImpl.initDevModeHandler(DevModeHandlerManagerImpl.java:96)
at com.vaadin.base.devserver.startup.DevModeStartupListener.initialize(DevModeStartupListener.java:82)
at com.vaadin.flow.server.startup.VaadinServletContextStartupInitializer.process(VaadinServletContextStartupInitializer.java:42)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.vaadin.flow.server.startup.ClassLoaderAwareServletContainerInitializer.lambda$onStartup$2(ClassLoaderAwareServletContainerInitializer.java:98)
at com.vaadin.flow.server.startup.ClassLoaderAwareServletContainerInitializer.onStartup(ClassLoaderAwareServletContainerInitializer.java:122)
at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:204)
at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:186)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at io.quarkus.undertow.runtime.UndertowDeploymentRecorder$9$1.call(UndertowDeploymentRecorder.java:602)
at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:251)
at io.quarkus.undertow.runtime.UndertowDeploymentRecorder.bootServletContainer(UndertowDeploymentRecorder.java:543)
at io.quarkus.deployment.steps.UndertowBuildStep$build767851419.deploy_0(Unknown Source)
at io.quarkus.deployment.steps.UndertowBuildStep$build767851419.deploy(Unknown Source)
at io.quarkus.runner.ApplicationImpl.<clinit>(Unknown Source)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:70)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:44)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:124)
at io.quarkus.runner.GeneratedMain.main(Unknown Source)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at io.quarkus.runner.bootstrap.StartupActionImpl$1.run(StartupActionImpl.java:104)
... 1 more
```
</details>
After the previous error, Copilot is not able to handle messages from the browser
<details>
<summary>Stack trace</summary>
```
024-09-11 12:31:33,561 WARN [org.atm.web.DefaultWebSocketProcessor] (vert.x-eventloop-thread-0) Failed invoking AtmosphereFramework.doCometSupport(): java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "this.commands" is null
at com.vaadin.copilot.Copilot.handleMessage(Copilot.java:140)
at com.vaadin.base.devserver.DebugWindowConnection.onMessage(DebugWindowConnection.java:330)
at com.vaadin.flow.server.communication.PushHandler.handleDebugWindowMessage(PushHandler.java:668)
at com.vaadin.flow.server.communication.PushHandler.callWithServiceAndSession(PushHandler.java:235)
at com.vaadin.flow.server.communication.PushHandler.onMessage(PushHandler.java:644)
at com.vaadin.flow.server.communication.PushAtmosphereHandler.onMessage(PushAtmosphereHandler.java:90)
at com.vaadin.flow.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.java:79)
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.lambda$dispatch$2(DefaultWebSocketProcessor.java:326)
at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101)
at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:323)
at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:428)
at org.atmosphere.container.JSR356Endpoint.lambda$onOpen$2(JSR356Endpoint.java:261)
at io.undertow.websockets.FrameHandler$5.run(FrameHandler.java:355)
at io.undertow.websockets.ServerWebSocketContainer$1.call(ServerWebSocketContainer.java:143)
at io.undertow.websockets.ServerWebSocketContainer$1.call(ServerWebSocketContainer.java:140)
at io.quarkus.websockets.client.runtime.WebsocketCoreRecorder$4$1.call(WebsocketCoreRecorder.java:181)
at io.undertow.websockets.ServerWebSocketContainer.invokeEndpointMethod(ServerWebSocketContainer.java:536)
at io.undertow.websockets.ServerWebSocketContainer.invokeEndpointMethod(ServerWebSocketContainer.java:525)
at io.undertow.websockets.FrameHandler.invokeTextHandler(FrameHandler.java:335)
at io.undertow.websockets.FrameHandler.onText(FrameHandler.java:250)
at io.undertow.websockets.FrameHandler.processFrame(FrameHandler.java:156)
at io.undertow.websockets.FrameHandler.channelRead0(FrameHandler.java:131)
at io.undertow.websockets.FrameHandler.channelRead0(FrameHandler.java:61)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
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/java.lang.Thread.run(Thread.java:840)
2024-09-11 12:31:33,563 WARN [org.atm.web.pro.SimpleHttpProtocol] (vert.x-eventloop-thread-0) java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "this.commands" is null. Unable to deliver the websocket messages to installed component. Status 500 Message Server Error
```
</details>
It would be useful to file bug ticket in that repository with some further details in it so that problem can be reproduced and debugged.
Tatu2
(Tatu Lund)
March 31, 2026, 5:47am
5
The biggest problem is that Quarkus live reload works by restarting the app after an HTTP request comes and this means a full page reload. So the page refresh that Copilot triggers never works as expected. So Copilot should have special treatment of Quarkus, like hook into Quarkus reload, but the remaining problem is to disable application restart.
I filed a feature request about this: [FEATURE] Add Quarkus support · Issue #131 · vaadin/copilot · GitHub
But first the class loader issue needs to be fixed [BUG] Classloader conflict with Quarkus · Issue #132 · vaadin/copilot · GitHub