You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by GitBox <gi...@apache.org> on 2021/04/16 13:04:27 UTC

[GitHub] [camel-quarkus] avano opened a new issue #2489: Unable to build mongo-to-slack in native with 1.13 quarkus

avano opened a new issue #2489:
URL: https://github.com/apache/camel-quarkus/issues/2489


   Quarkus version: `1.13.2.Final`
   Camel Quarkus version: `1.8.1`
   Camel version: `3.9.0`
   
   With quarkus 1.13.2.Final, I am not able to build my integration in native mode (also doesn't work with 1.13.1 and 1.13.0). Works ok with 1.12.2 native mode:
   
   ```
   mvn clean package -DskipTests -Pnative                                                
   [INFO] Scanning for projects...
   [INFO] 
   [INFO] ----------------------< com.test:mongo-to-slack >-----------------------
   [INFO] Building mongo-to-slack 1.0.0-SNAPSHOT
   [INFO] --------------------------------[ jar ]---------------------------------
   [INFO] 
   [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ mongo-to-slack ---
   [INFO] Deleting /git/tnb-tests/target/mongo-to-slack/target
   [INFO] 
   [INFO] --- quarkus-maven-plugin:1.13.2.Final:generate-code (default) @ mongo-to-slack ---
   [INFO] 
   [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ mongo-to-slack ---
   [INFO] Using 'UTF-8' encoding to copy filtered resources.
   [INFO] Copying 2 resources
   [INFO] 
   [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ mongo-to-slack ---
   [INFO] Changes detected - recompiling the module!
   [INFO] Compiling 2 source files to /git/tnb-tests/target/mongo-to-slack/target/classes
   [INFO] 
   [INFO] --- quarkus-maven-plugin:1.13.2.Final:generate-code-tests (default) @ mongo-to-slack ---
   [INFO] 
   [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ mongo-to-slack ---
   [INFO] Using 'UTF-8' encoding to copy filtered resources.
   [INFO] skip non existing resourceDirectory /git/tnb-tests/target/mongo-to-slack/src/test/resources
   [INFO] 
   [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ mongo-to-slack ---
   [INFO] Changes detected - recompiling the module!
   [INFO] Compiling 2 source files to /git/tnb-tests/target/mongo-to-slack/target/test-classes
   [INFO] 
   [INFO] --- maven-surefire-plugin:3.0.0-M5:test (default-test) @ mongo-to-slack ---
   [INFO] Tests are skipped.
   [INFO] 
   [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ mongo-to-slack ---
   [INFO] Building jar: /git/tnb-tests/target/mongo-to-slack/target/mongo-to-slack-1.0.0-SNAPSHOT.jar
   [INFO] 
   [INFO] --- quarkus-maven-plugin:1.13.2.Final:build (default) @ mongo-to-slack ---
   [INFO] [org.jboss.threads] JBoss Threads version 3.2.0.Final
   [INFO] [io.quarkus.deployment.pkg.steps.JarResultBuildStep] Building native image source jar: /git/tnb-tests/target/mongo-to-slack/target/mongo-to-slack-1.0.0-SNAPSHOT-native-image-source-jar/mongo-to-slack-1.0.0-SNAPSHOT-runner.jar
   [INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Building native image from /git/tnb-tests/target/mongo-to-slack/target/mongo-to-slack-1.0.0-SNAPSHOT-native-image-source-jar/mongo-to-slack-1.0.0-SNAPSHOT-runner.jar
   [INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Running Quarkus native-image plugin on GraalVM Version 21.0.0.2 (Java Version 11.0.10+8-jvmci-21.0-b06)
   [INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildRunner] /home/avano/.sdkman/candidates/java/21.0.0.2.r11-grl/bin/native-image -J-Dsun.nio.ch.maxUpdateArraySize=100 -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -J-Dvertx.logger-delegate-factory-class-name=io.quarkus.vertx.core.runtime.VertxLogDelegateFactory -J-Dvertx.disableDnsResolver=true -J-Dio.netty.leakDetection.level=DISABLED -J-Dio.netty.allocator.maxOrder=1 -J-Duser.language=en -J-Duser.country=US -J-Dfile.encoding=UTF-8 --initialize-at-build-time= -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy\$BySpaceAndTime -H:+JNI -H:+AllowFoldMethods -jar mongo-to-slack-1.0.0-SNAPSHOT-runner.jar -H:FallbackThreshold=0 -H:+ReportExceptionStackTraces -H:-AddAllCharsets -H:EnableURLProtocols=http,https --enable-all-security-services -H:NativeLinkerOption=-no-pie --no-server -H:-UseServiceLoaderFeature -H:+StackTrace mongo-to-slack-1.0.0-SNAPSHOT-runner
   [mongo-to-slack-1.0.0-SNAPSHOT-runner:245340]    classlist:   1,246.14 ms,  0.94 GB
   [mongo-to-slack-1.0.0-SNAPSHOT-runner:245340]        (cap):     303.52 ms,  0.94 GB
   [mongo-to-slack-1.0.0-SNAPSHOT-runner:245340]        setup:   1,226.61 ms,  0.94 GB
   13:44:09,082 INFO  [org.jbo.threads] JBoss Threads version 3.2.0.Final
   [mongo-to-slack-1.0.0-SNAPSHOT-runner:245340]     (clinit):     930.56 ms,  6.20 GB
   [mongo-to-slack-1.0.0-SNAPSHOT-runner:245340]   (typeflow):  12,644.48 ms,  6.20 GB
   [mongo-to-slack-1.0.0-SNAPSHOT-runner:245340]    (objects):  20,417.83 ms,  6.20 GB
   [mongo-to-slack-1.0.0-SNAPSHOT-runner:245340]   (features):   1,016.71 ms,  6.20 GB
   [mongo-to-slack-1.0.0-SNAPSHOT-runner:245340]     analysis:  37,714.38 ms,  6.20 GB
   Error: Unsupported features in 3 methods
   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@2a669bb5 reached by 
   	reading field java.util.concurrent.ThreadPoolExecutor.workQueue of
   		constant java.util.concurrent.ScheduledThreadPoolExecutor@27a95954 reached by 
   	reading field java.util.concurrent.Executors$DelegatedExecutorService.e of
   		constant java.util.concurrent.Executors$DelegatedScheduledExecutorService@37fffeb3 reached by 
   	reading field com.slack.api.rate_limits.metrics.impl.BaseMemoryMetricsDatastore.cleanerExecutor of
   		constant com.slack.api.scim.metrics.MemoryMetricsDatastore@76b32a0d reached by 
   	reading field com.slack.api.scim.SCIMConfig.metricsDatastore of
   		constant com.slack.api.scim.SCIMConfig$1@63f48150 reached by 
   	scanning method com.slack.api.SlackConfig.<init>(SlackConfig.java:220)
   Call path from entry point to com.slack.api.SlackConfig.<init>(): 
   	at com.slack.api.SlackConfig.<init>(SlackConfig.java:126)
   	at org.apache.camel.component.slack.helper.SlackHelper.createSlackConfig(SlackHelper.java:41)
   	at org.apache.camel.component.slack.SlackConsumer.doStart(SlackConsumer.java:57)
   	at com.oracle.svm.reflect.SlackConsumer_doStart_6057eefd97482b91e3571e2610656f099094ce6c_5882.invoke(Unknown Source)
   	at java.lang.reflect.Method.invoke(Method.java:566)
   	at java.util.ServiceLoader$ProviderImpl.invokeFactoryMethod(ServiceLoader.java:737)
   	at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:720)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.initializeLazyValue(SystemPropertiesSupport.java:211)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.getProperty(SystemPropertiesSupport.java:164)
   	at com.oracle.svm.core.jdk.Target_java_lang_System.getProperty(JavaLangSubstitutions.java:293)
   	at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST:Ljava_lang_System_2_0002egetProperty_00028Ljava_lang_String_2_00029Ljava_lang_String_2(generated:0)
   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.ThreadPoolExecutor$Worker.thread of
   		constant java.util.concurrent.ThreadPoolExecutor$Worker@5faeb91 reached by 
   	reading field java.util.HashMap$Node.key of
   		constant java.util.HashMap$Node@5fbf1e02 reached by 
   	indexing into array
   		constant java.util.HashMap$Node[]@6cc5deae reached by 
   	reading field java.util.HashMap.table of
   		constant java.util.HashMap@e63586f reached by 
   	reading field java.util.HashSet.map of
   		constant java.util.HashSet@7ee693dd reached by 
   	reading field java.util.concurrent.ThreadPoolExecutor.workers of
   		constant java.util.concurrent.ScheduledThreadPoolExecutor@627e4c21 reached by 
   	reading field java.util.concurrent.Executors$DelegatedExecutorService.e of
   		constant java.util.concurrent.Executors$DelegatedScheduledExecutorService@29a89cd7 reached by 
   	reading field com.slack.api.rate_limits.metrics.impl.BaseMemoryMetricsDatastore.cleanerExecutor of
   		constant com.slack.api.audit.metrics.MemoryMetricsDatastore@e05585e reached by 
   	reading field com.slack.api.audit.AuditConfig.metricsDatastore of
   		constant com.slack.api.audit.AuditConfig$1@6a400c12 reached by 
   	scanning method com.slack.api.SlackConfig.<init>(SlackConfig.java:218)
   Call path from entry point to com.slack.api.SlackConfig.<init>(): 
   	at com.slack.api.SlackConfig.<init>(SlackConfig.java:126)
   	at org.apache.camel.component.slack.helper.SlackHelper.createSlackConfig(SlackHelper.java:41)
   	at org.apache.camel.component.slack.SlackConsumer.doStart(SlackConsumer.java:57)
   	at com.oracle.svm.reflect.SlackConsumer_doStart_6057eefd97482b91e3571e2610656f099094ce6c_5882.invoke(Unknown Source)
   	at java.lang.reflect.Method.invoke(Method.java:566)
   	at java.util.ServiceLoader$ProviderImpl.invokeFactoryMethod(ServiceLoader.java:737)
   	at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:720)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.initializeLazyValue(SystemPropertiesSupport.java:211)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.getProperty(SystemPropertiesSupport.java:164)
   	at com.oracle.svm.core.jdk.Target_java_lang_System.getProperty(JavaLangSubstitutions.java:293)
   	at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST:Ljava_lang_System_2_0002egetProperty_00028Ljava_lang_String_2_00029Ljava_lang_String_2(generated:0)
   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.locks.AbstractQueuedSynchronizer$Node.thread of
   		constant java.util.concurrent.locks.AbstractQueuedSynchronizer$Node@777f81a7 reached by 
   	reading field java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.firstWaiter of
   		constant java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15bea714 reached by 
   	reading field java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.available of
   		constant java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue@33f17dae reached by 
   	reading field java.util.concurrent.ThreadPoolExecutor.workQueue of
   		constant java.util.concurrent.ScheduledThreadPoolExecutor@7356392 reached by 
   	reading field java.util.concurrent.Executors$DelegatedExecutorService.e of
   		constant java.util.concurrent.Executors$DelegatedScheduledExecutorService@11909ad7 reached by 
   	reading field com.slack.api.rate_limits.metrics.impl.BaseMemoryMetricsDatastore.cleanerExecutor of
   		constant com.slack.api.methods.metrics.MemoryMetricsDatastore@5664abc8 reached by 
   	reading field com.slack.api.methods.MethodsConfig.metricsDatastore of
   		constant com.slack.api.methods.MethodsConfig$1@320c914b reached by 
   	scanning method com.slack.api.SlackConfig.<init>(SlackConfig.java:216)
   Call path from entry point to com.slack.api.SlackConfig.<init>(): 
   	at com.slack.api.SlackConfig.<init>(SlackConfig.java:126)
   	at org.apache.camel.component.slack.helper.SlackHelper.createSlackConfig(SlackHelper.java:41)
   	at org.apache.camel.component.slack.SlackConsumer.doStart(SlackConsumer.java:57)
   	at com.oracle.svm.reflect.SlackConsumer_doStart_6057eefd97482b91e3571e2610656f099094ce6c_5882.invoke(Unknown Source)
   	at java.lang.reflect.Method.invoke(Method.java:566)
   	at java.util.ServiceLoader$ProviderImpl.invokeFactoryMethod(ServiceLoader.java:737)
   	at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:720)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.initializeLazyValue(SystemPropertiesSupport.java:211)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.getProperty(SystemPropertiesSupport.java:164)
   	at com.oracle.svm.core.jdk.Target_java_lang_System.getProperty(JavaLangSubstitutions.java:293)
   	at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST:Ljava_lang_System_2_0002egetProperty_00028Ljava_lang_String_2_00029Ljava_lang_String_2(generated:0)
   
   com.oracle.svm.core.util.UserError$UserException: Unsupported features in 3 methods
   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@2a669bb5 reached by 
   	reading field java.util.concurrent.ThreadPoolExecutor.workQueue of
   		constant java.util.concurrent.ScheduledThreadPoolExecutor@27a95954 reached by 
   	reading field java.util.concurrent.Executors$DelegatedExecutorService.e of
   		constant java.util.concurrent.Executors$DelegatedScheduledExecutorService@37fffeb3 reached by 
   	reading field com.slack.api.rate_limits.metrics.impl.BaseMemoryMetricsDatastore.cleanerExecutor of
   		constant com.slack.api.scim.metrics.MemoryMetricsDatastore@76b32a0d reached by 
   	reading field com.slack.api.scim.SCIMConfig.metricsDatastore of
   		constant com.slack.api.scim.SCIMConfig$1@63f48150 reached by 
   	scanning method com.slack.api.SlackConfig.<init>(SlackConfig.java:220)
   Call path from entry point to com.slack.api.SlackConfig.<init>(): 
   	at com.slack.api.SlackConfig.<init>(SlackConfig.java:126)
   	at org.apache.camel.component.slack.helper.SlackHelper.createSlackConfig(SlackHelper.java:41)
   	at org.apache.camel.component.slack.SlackConsumer.doStart(SlackConsumer.java:57)
   	at com.oracle.svm.reflect.SlackConsumer_doStart_6057eefd97482b91e3571e2610656f099094ce6c_5882.invoke(Unknown Source)
   	at java.lang.reflect.Method.invoke(Method.java:566)
   	at java.util.ServiceLoader$ProviderImpl.invokeFactoryMethod(ServiceLoader.java:737)
   	at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:720)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.initializeLazyValue(SystemPropertiesSupport.java:211)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.getProperty(SystemPropertiesSupport.java:164)
   	at com.oracle.svm.core.jdk.Target_java_lang_System.getProperty(JavaLangSubstitutions.java:293)
   	at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST:Ljava_lang_System_2_0002egetProperty_00028Ljava_lang_String_2_00029Ljava_lang_String_2(generated:0)
   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.ThreadPoolExecutor$Worker.thread of
   		constant java.util.concurrent.ThreadPoolExecutor$Worker@5faeb91 reached by 
   	reading field java.util.HashMap$Node.key of
   		constant java.util.HashMap$Node@5fbf1e02 reached by 
   	indexing into array
   		constant java.util.HashMap$Node[]@6cc5deae reached by 
   	reading field java.util.HashMap.table of
   		constant java.util.HashMap@e63586f reached by 
   	reading field java.util.HashSet.map of
   		constant java.util.HashSet@7ee693dd reached by 
   	reading field java.util.concurrent.ThreadPoolExecutor.workers of
   		constant java.util.concurrent.ScheduledThreadPoolExecutor@627e4c21 reached by 
   	reading field java.util.concurrent.Executors$DelegatedExecutorService.e of
   		constant java.util.concurrent.Executors$DelegatedScheduledExecutorService@29a89cd7 reached by 
   	reading field com.slack.api.rate_limits.metrics.impl.BaseMemoryMetricsDatastore.cleanerExecutor of
   		constant com.slack.api.audit.metrics.MemoryMetricsDatastore@e05585e reached by 
   	reading field com.slack.api.audit.AuditConfig.metricsDatastore of
   		constant com.slack.api.audit.AuditConfig$1@6a400c12 reached by 
   	scanning method com.slack.api.SlackConfig.<init>(SlackConfig.java:218)
   Call path from entry point to com.slack.api.SlackConfig.<init>(): 
   	at com.slack.api.SlackConfig.<init>(SlackConfig.java:126)
   	at org.apache.camel.component.slack.helper.SlackHelper.createSlackConfig(SlackHelper.java:41)
   	at org.apache.camel.component.slack.SlackConsumer.doStart(SlackConsumer.java:57)
   	at com.oracle.svm.reflect.SlackConsumer_doStart_6057eefd97482b91e3571e2610656f099094ce6c_5882.invoke(Unknown Source)
   	at java.lang.reflect.Method.invoke(Method.java:566)
   	at java.util.ServiceLoader$ProviderImpl.invokeFactoryMethod(ServiceLoader.java:737)
   	at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:720)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.initializeLazyValue(SystemPropertiesSupport.java:211)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.getProperty(SystemPropertiesSupport.java:164)
   	at com.oracle.svm.core.jdk.Target_java_lang_System.getProperty(JavaLangSubstitutions.java:293)
   	at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST:Ljava_lang_System_2_0002egetProperty_00028Ljava_lang_String_2_00029Ljava_lang_String_2(generated:0)
   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.locks.AbstractQueuedSynchronizer$Node.thread of
   		constant java.util.concurrent.locks.AbstractQueuedSynchronizer$Node@777f81a7 reached by 
   	reading field java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.firstWaiter of
   		constant java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15bea714 reached by 
   	reading field java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.available of
   		constant java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue@33f17dae reached by 
   	reading field java.util.concurrent.ThreadPoolExecutor.workQueue of
   		constant java.util.concurrent.ScheduledThreadPoolExecutor@7356392 reached by 
   	reading field java.util.concurrent.Executors$DelegatedExecutorService.e of
   		constant java.util.concurrent.Executors$DelegatedScheduledExecutorService@11909ad7 reached by 
   	reading field com.slack.api.rate_limits.metrics.impl.BaseMemoryMetricsDatastore.cleanerExecutor of
   		constant com.slack.api.methods.metrics.MemoryMetricsDatastore@5664abc8 reached by 
   	reading field com.slack.api.methods.MethodsConfig.metricsDatastore of
   		constant com.slack.api.methods.MethodsConfig$1@320c914b reached by 
   	scanning method com.slack.api.SlackConfig.<init>(SlackConfig.java:216)
   Call path from entry point to com.slack.api.SlackConfig.<init>(): 
   	at com.slack.api.SlackConfig.<init>(SlackConfig.java:126)
   	at org.apache.camel.component.slack.helper.SlackHelper.createSlackConfig(SlackHelper.java:41)
   	at org.apache.camel.component.slack.SlackConsumer.doStart(SlackConsumer.java:57)
   	at com.oracle.svm.reflect.SlackConsumer_doStart_6057eefd97482b91e3571e2610656f099094ce6c_5882.invoke(Unknown Source)
   	at java.lang.reflect.Method.invoke(Method.java:566)
   	at java.util.ServiceLoader$ProviderImpl.invokeFactoryMethod(ServiceLoader.java:737)
   	at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:720)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.initializeLazyValue(SystemPropertiesSupport.java:211)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.getProperty(SystemPropertiesSupport.java:164)
   	at com.oracle.svm.core.jdk.Target_java_lang_System.getProperty(JavaLangSubstitutions.java:293)
   	at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST:Ljava_lang_System_2_0002egetProperty_00028Ljava_lang_String_2_00029Ljava_lang_String_2(generated:0)
   
   	at com.oracle.svm.core.util.UserError.abort(UserError.java:82)
   	at com.oracle.svm.hosted.FallbackFeature.reportAsFallback(FallbackFeature.java:233)
   	at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:773)
   	at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:563)
   	at com.oracle.svm.hosted.NativeImageGenerator.lambda$run$0(NativeImageGenerator.java:476)
   	at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1407)
   	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
   	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
   	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
   	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
   	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
   Caused by: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Unsupported features in 3 methods
   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@2a669bb5 reached by 
   	reading field java.util.concurrent.ThreadPoolExecutor.workQueue of
   		constant java.util.concurrent.ScheduledThreadPoolExecutor@27a95954 reached by 
   	reading field java.util.concurrent.Executors$DelegatedExecutorService.e of
   		constant java.util.concurrent.Executors$DelegatedScheduledExecutorService@37fffeb3 reached by 
   	reading field com.slack.api.rate_limits.metrics.impl.BaseMemoryMetricsDatastore.cleanerExecutor of
   		constant com.slack.api.scim.metrics.MemoryMetricsDatastore@76b32a0d reached by 
   	reading field com.slack.api.scim.SCIMConfig.metricsDatastore of
   		constant com.slack.api.scim.SCIMConfig$1@63f48150 reached by 
   	scanning method com.slack.api.SlackConfig.<init>(SlackConfig.java:220)
   Call path from entry point to com.slack.api.SlackConfig.<init>(): 
   	at com.slack.api.SlackConfig.<init>(SlackConfig.java:126)
   	at org.apache.camel.component.slack.helper.SlackHelper.createSlackConfig(SlackHelper.java:41)
   	at org.apache.camel.component.slack.SlackConsumer.doStart(SlackConsumer.java:57)
   	at com.oracle.svm.reflect.SlackConsumer_doStart_6057eefd97482b91e3571e2610656f099094ce6c_5882.invoke(Unknown Source)
   	at java.lang.reflect.Method.invoke(Method.java:566)
   	at java.util.ServiceLoader$ProviderImpl.invokeFactoryMethod(ServiceLoader.java:737)
   	at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:720)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.initializeLazyValue(SystemPropertiesSupport.java:211)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.getProperty(SystemPropertiesSupport.java:164)
   	at com.oracle.svm.core.jdk.Target_java_lang_System.getProperty(JavaLangSubstitutions.java:293)
   	at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST:Ljava_lang_System_2_0002egetProperty_00028Ljava_lang_String_2_00029Ljava_lang_String_2(generated:0)
   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.ThreadPoolExecutor$Worker.thread of
   		constant java.util.concurrent.ThreadPoolExecutor$Worker@5faeb91 reached by 
   	reading field java.util.HashMap$Node.key of
   		constant java.util.HashMap$Node@5fbf1e02 reached by 
   	indexing into array
   		constant java.util.HashMap$Node[]@6cc5deae reached by 
   	reading field java.util.HashMap.table of
   		constant java.util.HashMap@e63586f reached by 
   	reading field java.util.HashSet.map of
   		constant java.util.HashSet@7ee693dd reached by 
   	reading field java.util.concurrent.ThreadPoolExecutor.workers of
   		constant java.util.concurrent.ScheduledThreadPoolExecutor@627e4c21 reached by 
   	reading field java.util.concurrent.Executors$DelegatedExecutorService.e of
   		constant java.util.concurrent.Executors$DelegatedScheduledExecutorService@29a89cd7 reached by 
   	reading field com.slack.api.rate_limits.metrics.impl.BaseMemoryMetricsDatastore.cleanerExecutor of
   		constant com.slack.api.audit.metrics.MemoryMetricsDatastore@e05585e reached by 
   	reading field com.slack.api.audit.AuditConfig.metricsDatastore of
   		constant com.slack.api.audit.AuditConfig$1@6a400c12 reached by 
   	scanning method com.slack.api.SlackConfig.<init>(SlackConfig.java:218)
   Call path from entry point to com.slack.api.SlackConfig.<init>(): 
   	at com.slack.api.SlackConfig.<init>(SlackConfig.java:126)
   	at org.apache.camel.component.slack.helper.SlackHelper.createSlackConfig(SlackHelper.java:41)
   	at org.apache.camel.component.slack.SlackConsumer.doStart(SlackConsumer.java:57)
   	at com.oracle.svm.reflect.SlackConsumer_doStart_6057eefd97482b91e3571e2610656f099094ce6c_5882.invoke(Unknown Source)
   	at java.lang.reflect.Method.invoke(Method.java:566)
   	at java.util.ServiceLoader$ProviderImpl.invokeFactoryMethod(ServiceLoader.java:737)
   	at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:720)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.initializeLazyValue(SystemPropertiesSupport.java:211)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.getProperty(SystemPropertiesSupport.java:164)
   	at com.oracle.svm.core.jdk.Target_java_lang_System.getProperty(JavaLangSubstitutions.java:293)
   	at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST:Ljava_lang_System_2_0002egetProperty_00028Ljava_lang_String_2_00029Ljava_lang_String_2(generated:0)
   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.locks.AbstractQueuedSynchronizer$Node.thread of
   		constant java.util.concurrent.locks.AbstractQueuedSynchronizer$Node@777f81a7 reached by 
   	reading field java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.firstWaiter of
   		constant java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@15bea714 reached by 
   	reading field java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.available of
   		constant java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue@33f17dae reached by 
   	reading field java.util.concurrent.ThreadPoolExecutor.workQueue of
   		constant java.util.concurrent.ScheduledThreadPoolExecutor@7356392 reached by 
   	reading field java.util.concurrent.Executors$DelegatedExecutorService.e of
   		constant java.util.concurrent.Executors$DelegatedScheduledExecutorService@11909ad7 reached by 
   	reading field com.slack.api.rate_limits.metrics.impl.BaseMemoryMetricsDatastore.cleanerExecutor of
   		constant com.slack.api.methods.metrics.MemoryMetricsDatastore@5664abc8 reached by 
   	reading field com.slack.api.methods.MethodsConfig.metricsDatastore of
   		constant com.slack.api.methods.MethodsConfig$1@320c914b reached by 
   	scanning method com.slack.api.SlackConfig.<init>(SlackConfig.java:216)
   Call path from entry point to com.slack.api.SlackConfig.<init>(): 
   	at com.slack.api.SlackConfig.<init>(SlackConfig.java:126)
   	at org.apache.camel.component.slack.helper.SlackHelper.createSlackConfig(SlackHelper.java:41)
   	at org.apache.camel.component.slack.SlackConsumer.doStart(SlackConsumer.java:57)
   	at com.oracle.svm.reflect.SlackConsumer_doStart_6057eefd97482b91e3571e2610656f099094ce6c_5882.invoke(Unknown Source)
   	at java.lang.reflect.Method.invoke(Method.java:566)
   	at java.util.ServiceLoader$ProviderImpl.invokeFactoryMethod(ServiceLoader.java:737)
   	at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:720)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.initializeLazyValue(SystemPropertiesSupport.java:211)
   	at com.oracle.svm.core.jdk.SystemPropertiesSupport.getProperty(SystemPropertiesSupport.java:164)
   	at com.oracle.svm.core.jdk.Target_java_lang_System.getProperty(JavaLangSubstitutions.java:293)
   	at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST:Ljava_lang_System_2_0002egetProperty_00028Ljava_lang_String_2_00029Ljava_lang_String_2(generated:0)
   
   	at com.oracle.graal.pointsto.constraints.UnsupportedFeatures.report(UnsupportedFeatures.java:129)
   	at com.oracle.svm.hosted.NativeImageGenerator.runPointsToAnalysis(NativeImageGenerator.java:770)
   	... 8 more
   
   ```
   
   the app is built with `io.quarkus:quarkus-maven-plugin:1.13.2.Final:create` with `camel-quarkus-mongodb,camel-quarkus-slack` extensions based on https://camel.apache.org/camel-quarkus/latest/user-guide/first-steps.html


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] jamesnetherton closed issue #2489: Unable to build mongo-to-slack in native with 1.13 quarkus

Posted by GitBox <gi...@apache.org>.
jamesnetherton closed issue #2489:
URL: https://github.com/apache/camel-quarkus/issues/2489


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] jamesnetherton commented on issue #2489: Unable to build mongo-to-slack in native with 1.13 quarkus

Posted by GitBox <gi...@apache.org>.
jamesnetherton commented on issue #2489:
URL: https://github.com/apache/camel-quarkus/issues/2489#issuecomment-822548831


   This issue is quite strange. `SlackConfig` does have a static field which does some eager initialization where the result is that a thread ends up being started. Obviously that's not allowed during the native image build.
   
   However, I can only replicate the error when `camel-quarkus-mongodb` is on the classpath. Using other component extensions as the consumer seems to work fine.
   
   It should be easy enough to fix the issues with `SlackConfig`, but I'd like to understand why the presence of the mongodb extension seems to trigger the build failure.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [camel-quarkus] ppalaga commented on issue #2489: Unable to build mongo-to-slack in native with 1.13 quarkus

Posted by GitBox <gi...@apache.org>.
ppalaga commented on issue #2489:
URL: https://github.com/apache/camel-quarkus/issues/2489#issuecomment-822633870


   Class initialization is tricky. I always enjoy re-reading https://www.graalvm.org/reference-manual/native-image/ClassInitialization/ 
   
   My spontaneous hypothesis for this one is that when Slack is alone, the native compiler is able to correctly auto-classify SlackConfig as runtime init, but when combined with Mongo, there is some explicit config to init some class eagerly that implictily causes SlackConfig to be initialited at build time too. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org