Open juanmbellini opened 2 years ago
Hi.
Due to some resourcing shortage lately we have not had time to look into the native compilation of a vaadin project.
But due to the exception I would like to know if you are using SpringBoot and what version of tomcat are you using?
It would seem that the org.apache.coyote.http11.upgrade.UpgradeInbound
class was removed in Tomcat 8.0.x which makes it sound like something is using some old api that is not available anymore.
Hi! I'm not using Spring Boot. I'm using Quarkus 2.5.2. That stacktrace is just a part of the whole log. There is another part in which the stacktrace is the following:
Error: Class initialization of org.atmosphere.container.AbstractJetty9AsyncSupportWithWebSocket failed. Use the option --initialize-at-run-time=org.atmosphere.container.AbstractJetty9AsyncSupportWithWebSocket to explicitly request delayed initialization of this class.
Original exception that caused the problem: java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/servlet/WebSocketCreator
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1155)
at jdk.unsupported/sun.misc.Unsafe.ensureClassInitialized(Unsafe.java:743)
at jdk.internal.vm.compiler/org.graalvm.compiler.serviceprovider.GraalUnsafeAccess.ensureClassInitialized(GraalUnsafeAccess.java:77)
at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.ensureClassInitialized(ConfigurableClassInitialization.java:178)
at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:648)
at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:622)
at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.computeInitKindAndMaybeInitializeClass(ConfigurableClassInitialization.java:131)
at com.oracle.svm.hosted.classinitialization.ConfigurableClassInitialization.maybeInitializeHosted(ConfigurableClassInitialization.java:169)
at com.oracle.svm.hosted.SVMHost.initializeType(SVMHost.java:278)
at com.oracle.graal.pointsto.meta.AnalysisType.lambda$new$0(AnalysisType.java:234)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.websocket.servlet.WebSocketCreator
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 19 more
As you can see, it tells that the class org.eclipse.jetty.websocket.servlet.WebSocketCreator
is missing.
What I see is that when creating the native executable, it starts initializing all of the *Support
classes in the org.atmosphere.container
package, and these classes rely on the platform for which these support classes are created for.
For Quarkus, the support must be for Vert.x and Netty, so Tomcat, Jetty, Grizzly, etc are not needed.
As there is issues with Push on websockets you could try to exclude the flow-push dependency and see if that helps as the Atmosphere shouldn't be initalized. This would at least hopefully give some insight to what is happening
I tried doing that (and explicitly adding org.atmosphere:nettosphere:3.2.5
), and another issue appears:
> Task :quarkusBuild
building quarkus jar
[INFO] Checking for existing resources in: ~/projects/frontend/src/main/kubernetes.
[frontend-0.0.1-RELEASE-runner:21863] classlist: 2.871,67 ms, 1,19 GB
[frontend-0.0.1-RELEASE-runner:21863] (cap): 2.697,45 ms, 1,19 GB
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:~/projects/frontend/build/frontend-0.0.1-RELEASE-native-image-source-jar/lib/ch.qos.logback.logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:~/projects/frontend/build/frontend-0.0.1-RELEASE-native-image-source-jar/lib/org.jboss.slf4j.slf4j-jboss-logmanager-1.1.0.Final.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
04:35:02.351 [ForkJoinPool-2-worker-4] DEBUG io.netty.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework
04:35:02.352 [ForkJoinPool-2-worker-4] DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkAccessible: true
04:35:02.352 [ForkJoinPool-2-worker-4] DEBUG io.netty.buffer.AbstractByteBuf - -Dio.netty.buffer.checkBounds: true
04:35:02.353 [ForkJoinPool-2-worker-4] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.level: disabled
04:35:02.353 [ForkJoinPool-2-worker-4] DEBUG io.netty.util.ResourceLeakDetector - -Dio.netty.leakDetection.targetRecords: 4
04:35:02.355 [ForkJoinPool-2-worker-4] DEBUG io.netty.util.ResourceLeakDetectorFactory - Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@79d42ad1
[frontend-0.0.1-RELEASE-runner:21863] setup: 4.253,97 ms, 1,19 GB
04:35:04,003 INFO [io.und.servlet] Initializing AtmosphereFramework
04:35:07.494 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent0 - -Dio.netty.noUnsafe: false
04:35:07.494 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent0 - Java version: 17
04:35:07.494 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
04:35:07.495 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
04:35:07.495 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Buffer.address: available
04:35:07.495 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent0 - direct buffer constructor: unavailable: Reflective setAccessible(true) disabled
04:35:07.495 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: unavailable, true, Reflective setAccessible(true) disabled
04:35:07.495 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent0 - jdk.internal.misc.Unsafe.allocateUninitializedArray(int): available
04:35:07.495 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.DirectByteBuffer.<init>(long, int): unavailable
04:35:07.496 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent - sun.misc.Unsafe: available
04:35:07.506 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent - maxDirectMemory: 13362528256 bytes (maybe)
04:35:07.506 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.tmpdir: /var/folders/m_/lggr3l1x1zn6j_jy6kgtwb6m0000gn/T (java.io.tmpdir)
04:35:07.506 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
04:35:07.509 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent - Platform: MacOS
04:35:07.510 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.maxDirectMemory: -1 bytes
04:35:07.510 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.uninitializedArrayAllocationThreshold: 1024
04:35:07.510 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.CleanerJava9 - java.nio.ByteBuffer.cleaner(): available
04:35:07.511 [ForkJoinPool-2-worker-8] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
04:35:08.252 [ForkJoinPool-2-worker-7] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxCapacityPerThread: 4096
04:35:08.253 [ForkJoinPool-2-worker-7] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.maxSharedCapacityFactor: 2
04:35:08.253 [ForkJoinPool-2-worker-7] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.linkCapacity: 16
04:35:08.253 [ForkJoinPool-2-worker-7] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.ratio: 8
04:35:08.253 [ForkJoinPool-2-worker-7] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.delayedQueue.ratio: 8
04:35:08.253 [ForkJoinPool-2-worker-7] DEBUG io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.initialSize: 1024
04:35:08.253 [ForkJoinPool-2-worker-7] DEBUG io.netty.util.internal.InternalThreadLocalMap - -Dio.netty.threadLocalMap.stringBuilder.maxSize: 4096
04:35:08.254 [ForkJoinPool-2-worker-11] DEBUG io.netty.buffer.AdvancedLeakAwareByteBuf - -Dio.netty.leakDetection.acquireAndReleaseOnly: false
04:35:08.438 [ForkJoinPool-2-worker-7] DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.processId: 21863 (auto-detected)
04:35:08.438 [ForkJoinPool-2-worker-7] DEBUG io.netty.channel.DefaultChannelId - -Dio.netty.machineId: de:03:69:b1:89:f0:04:9c (user-set)
04:35:08,477 INFO [org.jbo.threads] JBoss Threads version 3.4.2.Final
04:35:08.685 [ForkJoinPool-2-worker-8] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.noKeySetOptimization: false
04:35:08.686 [ForkJoinPool-2-worker-8] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
04:35:08.730 [ForkJoinPool-2-worker-2] DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv4Stack: false
04:35:08.730 [ForkJoinPool-2-worker-2] DEBUG io.netty.util.NetUtil - -Djava.net.preferIPv6Addresses: false
04:35:08.734 [ForkJoinPool-2-worker-2] DEBUG io.netty.util.NetUtilInitializations - Loopback interface: lo0 (lo0, 0:0:0:0:0:0:0:1%lo0)
04:35:08.735 [ForkJoinPool-2-worker-2] DEBUG io.netty.util.NetUtil - Failed to get SOMAXCONN from sysctl and file /proc/sys/net/core/somaxconn. Default: 128
04:35:09.985 [ForkJoinPool-2-worker-12] DEBUG io.netty.handler.ssl.OpenSsl - netty-tcnative not in the classpath; OpenSslEngine will be unavailable.
04:35:10.552 [ForkJoinPool-2-worker-4] DEBUG io.netty.handler.ssl.JdkSslContext - Default protocols (JDK): [TLSv1.3, TLSv1.2]
04:35:10.553 [ForkJoinPool-2-worker-4] DEBUG io.netty.handler.ssl.JdkSslContext - Default cipher suites (JDK): [TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384]
04:35:10.856 [ForkJoinPool-2-worker-7] DEBUG io.netty.handler.codec.compression.ZlibCodecFactory - -Dio.netty.noJdkZlibDecoder: false
04:35:10.856 [ForkJoinPool-2-worker-7] DEBUG io.netty.handler.codec.compression.ZlibCodecFactory - -Dio.netty.noJdkZlibEncoder: false
04:35:13.674 [ForkJoinPool-2-worker-5] DEBUG io.netty.channel.MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 24
04:35:14.388 [ForkJoinPool-2-worker-3] DEBUG com.helger.commons.lang.ServiceLoaderHelper - Finished retrieving all 1 SPI implementations of interface com.helger.commons.hashcode.IHashCodeImplementationRegistrarSPI
04:35:14.400 [ForkJoinPool-2-worker-3] DEBUG com.helger.commons.hashcode.HashCodeImplementationRegistry - Reinitialized com.helger.commons.hashcode.HashCodeImplementationRegistry
04:35:14.573 [ForkJoinPool-2-worker-9] DEBUG com.helger.commons.lang.ServiceLoaderHelper - Finished retrieving all 1 SPI implementations of interface com.helger.commons.equals.IEqualsImplementationRegistrarSPI
04:35:14.585 [ForkJoinPool-2-worker-9] DEBUG com.helger.commons.equals.EqualsImplementationRegistry - Reinitialized com.helger.commons.equals.EqualsImplementationRegistry
[frontend-0.0.1-RELEASE-runner:21863] analysis: 18.839,56 ms, 5,47 GB
Fatal error:com.oracle.graal.pointsto.util.AnalysisError$ParsingError: Error encountered while parsing org.apache.commons.logging.LogAdapter$Log4jLog.<clinit>()
Parsing context: <no parsing context available>
at com.oracle.graal.pointsto.util.AnalysisError.parsingError(AnalysisError.java:133)
at com.oracle.graal.pointsto.flow.MethodTypeFlow.createTypeFlow(MethodTypeFlow.java:311)
at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureTypeFlowCreated(MethodTypeFlow.java:282)
at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:103)
at com.oracle.graal.pointsto.PointsToAnalysis$1.run(PointsToAnalysis.java:463)
at com.oracle.graal.pointsto.util.CompletionExecutor.executeCommand(CompletionExecutor.java:188)
at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$executeService$0(CompletionExecutor.java:172)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: com.oracle.graal.pointsto.util.AnalysisError: parsing had failed in another thread
at com.oracle.graal.pointsto.util.AnalysisError.shouldNotReachHere(AnalysisError.java:153)
at com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsed(AnalysisMethod.java:656)
at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:163)
at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:321)
at com.oracle.graal.pointsto.flow.MethodTypeFlow.createTypeFlow(MethodTypeFlow.java:293)
... 11 more
Caused by: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: org.apache.logging.log4j.LogManager. To diagnose the issue you can use the --allow-incomplete-classpath option. The missing type is then reported at run time when it is accessed the first time.
at parsing org.apache.commons.logging.LogAdapter$Log4jLog.<clinit>(LogAdapter.java:155)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.throwParserError(BytecodeParser.java:2624)
at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.throwParserError(SharedGraphBuilderPhase.java:107)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3485)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.handleBytecodeBlock(BytecodeParser.java:3437)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3282)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:1145)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:1030)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:84)
at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase.run(SharedGraphBuilderPhase.java:81)
at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.run(Phase.java:49)
at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:212)
at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:42)
at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:38)
at com.oracle.graal.pointsto.flow.AnalysisParsedGraph.parseBytecode(AnalysisParsedGraph.java:132)
at com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsed(AnalysisMethod.java:621)
[frontend-0.0.1-RELEASE-runner:21863] [total]: 26.300,18 ms, 5,47 GB
at com.oracle.svm.hosted.fieldfolding.StaticFinalFieldFoldingNodePlugin.handleLoadStaticField(StaticFinalFieldFoldingFeature.java:349)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genGetStatic(BytecodeParser.java:4944)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genGetStatic(BytecodeParser.java:4911)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5413)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3477)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.handleBytecodeBlock(BytecodeParser.java:3437)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3282)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:1145)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:1030)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:84)
at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase.run(SharedGraphBuilderPhase.java:81)
at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.run(Phase.java:49)
at jdk.internal.vm.compiler/org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:212)
at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:42)
at jdk.internal.vm.compiler/org.graalvm.compiler.phases.Phase.apply(Phase.java:38)
at com.oracle.graal.pointsto.flow.AnalysisParsedGraph.parseBytecode(AnalysisParsedGraph.java:132)
at com.oracle.graal.pointsto.meta.AnalysisMethod.ensureGraphParsed(AnalysisMethod.java:621)
at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:163)
# Printing build artifacts to: ~/projects/frontend/build/frontend-0.0.1-RELEASE-native-image-source-jar/frontend-0.0.1-RELEASE-runner.build_artifacts.txt
at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:321)
at com.oracle.graal.pointsto.flow.MethodTypeFlow.createTypeFlow(MethodTypeFlow.java:293)
at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureTypeFlowCreated(MethodTypeFlow.java:282)
at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:103)
at com.oracle.graal.pointsto.DefaultAnalysisPolicy$DefaultSpecialInvokeTypeFlow.onObservedUpdate(DefaultAnalysisPolicy.java:363)
at com.oracle.graal.pointsto.flow.TypeFlow$1.run(TypeFlow.java:449)
... 8 more
Caused by: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: org.apache.logging.log4j.LogManager. To diagnose the issue you can use the --allow-incomplete-classpath option. The missing type is then reported at run time when it is accessed the first time.
at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.reportUnresolvedElement(SharedGraphBuilderPhase.java:307)
at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.handleUnresolvedType(SharedGraphBuilderPhase.java:263)
at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.handleUnresolvedMethod(SharedGraphBuilderPhase.java:289)
at com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.handleUnresolvedInvoke(SharedGraphBuilderPhase.java:252)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genInvokeStatic(BytecodeParser.java:1677)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genInvokeStatic(BytecodeParser.java:1652)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5419)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3477)
... 44 more
Error: Image build request failed with exit status 1
I fiddled with native compilation a while as well, but couldn't easily get flow-push/atmosphere to work. Getting rid of it completely works, but then, well, there is no server side push... Pushed out my example based on the base starter here:
https://github.com/vaadin/base-starter-flow-quarkus/tree/native-image
Created an enhancement issue about built-in hints for "native compilation hints": https://github.com/vaadin/quarkus/issues/72
BTW. I got quite a lot further with flow-push/atmosphere. Requesting runtime initialization for most atmosphere classes gets you forward, but I got frustrated at a point when got complaints about Thread usage. Didn't know anymore what to do with these, without starting to write a replacement/fork for atmosphere framework:
Detailed message:
Error: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image runtime. To see how this object got instantiated use --trace-object-instantiation=java.lang.Thread. The object was probably created by a class initializer and is reachable from a static field. You can request class initialization at image runtime by using the option --initialize-at-run-time=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace: Object was reached by
reading field java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.leader of
constant java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue@58bd40f7 reached by
reading field java.util.concurrent.ThreadPoolExecutor.workQueue of
constant java.util.concurrent.ScheduledThreadPoolExecutor@53a1c99d reached by
reading field org.atmosphere.websocket.DefaultWebSocketProcessor.scheduler of
constant org.atmosphere.websocket.DefaultWebSocketProcessor@777e8193 reached by
reading field java.util.WeakHashMap$Entry.value of
constant java.util.WeakHashMap$Entry@29bd82b3 reached by
indexing into array
constant java.util.WeakHashMap$Entry[]@45534cdd reached by
reading field java.util.WeakHashMap.table of
constant java.util.WeakHashMap@5aa0c751 reached by
reading field org.atmosphere.cpr.WebSocketProcessorFactory.processors of
constant org.atmosphere.cpr.WebSocketProcessorFactory@54d17b5b reached by
reading field org.atmosphere.cpr.WebSocketProcessorFactory.factory
Hi, as you can read from the title, I'm having some issues when building a native executable. The command that I'm using is the following:
When executing that, several stacktraces appear saying that class initialization fails:
In order to avoid this, I added the following to the
application.properties
files:However, it doesn't seem to work. Those classes are still getting initialized.
Is there something I'm missing? Quarkus version:
2.5.2.Final
. Vaadin version:22.0.2