jamesnetherton commented on issue #360: URL: https://github.com/apache/camel-k-runtime/issues/360#issuecomment-766815626
I will probably have to revert the change I made to support fast-jar. There's a problem with loading Kotlin integrations. The Kotlin bootstrap tries to do `ClassLoader.findResources("")`, but the Quarkus `RunnerClassLoader` can't handle it, because it tries and fails to do some string sanitization on the empty string: ``` 2021-01-25 13:24:08,916 ERROR [io.qua.run.Application] (main) Failed to start application (with profile prod): java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:47) at java.base/java.lang.String.charAt(String.java:693) at io.quarkus.bootstrap.runner.RunnerClassLoader.sanitizeName(RunnerClassLoader.java:150) at io.quarkus.bootstrap.runner.RunnerClassLoader.findResources(RunnerClassLoader.java:180) at java.base/java.lang.ClassLoader.getResources(ClassLoader.java:1467) at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt.rawClassPathFromKeyResourcePath(jvmClasspathUtil.kt:130) at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt.classPathFromTypicalResourceUrls(jvmClasspathUtil.kt:143) at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt$classpathFromClassloader$1.invoke(jvmClasspathUtil.kt:87) at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt$classpathFromClassloader$1.invoke(jvmClasspathUtil.kt) at kotlin.sequences.FlatteningSequence$iterator$1.ensureItemIterator(Sequences.kt:315) at kotlin.sequences.FlatteningSequence$iterator$1.hasNext(Sequences.kt:303) at kotlin.sequences.FilteringSequence$iterator$1.calcNext(Sequences.kt:169) at kotlin.sequences.FilteringSequence$iterator$1.hasNext(Sequences.kt:194) at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:752) at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:782) at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:773) at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt.classpathFromClassloader(jvmClasspathUtil.kt:92) at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt.scriptCompilationClasspathFromContextOrNull(jvmClasspathUtil.kt:275) at kotlin.script.experimental.jvm.util.JvmClasspathUtilKt.scriptCompilationClasspathFromContext(jvmClasspathUtil.kt:298) at kotlin.script.experimental.jvm.JvmScriptCompilationKt.dependenciesFromClassloader(jvmScriptCompilation.kt:57) at kotlin.script.experimental.jvm.JvmScriptCompilationKt.dependenciesFromClassloader$default(jvmScriptCompilation.kt:54) at org.apache.camel.k.loader.kotlin.KotlinCompilationConfiguration$1$1.invoke(KotlinCompilationConfiguration.kt:35) at org.apache.camel.k.loader.kotlin.KotlinCompilationConfiguration$1$1.invoke(KotlinCompilationConfiguration.kt:23) at kotlin.script.experimental.util.PropertiesCollection$Builder.invoke(propertiesCollection.kt:281) at org.apache.camel.k.loader.kotlin.KotlinCompilationConfiguration$1.invoke(KotlinCompilationConfiguration.kt:30) at org.apache.camel.k.loader.kotlin.KotlinCompilationConfiguration$1.invoke(KotlinCompilationConfiguration.kt:23) at kotlin.script.experimental.api.ScriptCompilationConfiguration.<init>(scriptCompilation.kt:22) at kotlin.script.experimental.api.ScriptCompilationConfiguration.<init>(scriptCompilation.kt:24) at org.apache.camel.k.loader.kotlin.KotlinCompilationConfiguration.<init>(KotlinCompilationConfiguration.kt:23) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at kotlin.script.experimental.host.ConfigurationFromTemplateKt.constructCompilationConfiguration(configurationFromTemplate.kt:212) at kotlin.script.experimental.host.ConfigurationFromTemplateKt.createCompilationConfigurationFromTemplate(configurationFromTemplate.kt:67) at org.apache.camel.k.loader.kotlin.KotlinSourceLoader.doLoad(KotlinSourceLoader.kt:88) at org.apache.camel.k.loader.kotlin.KotlinSourceLoader.access$doLoad(KotlinSourceLoader.kt:40) at org.apache.camel.k.loader.kotlin.KotlinSourceLoader$load$1.accept(KotlinSourceLoader.kt:47) at org.apache.camel.k.loader.kotlin.KotlinSourceLoader$load$1.accept(KotlinSourceLoader.kt:40) at org.apache.camel.k.support.RouteBuilders$1.configure(RouteBuilders.java:37) at org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:483) at org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:430) at org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:405) at org.apache.camel.impl.engine.AbstractCamelContext.addRoutes(AbstractCamelContext.java:1110) at org.apache.camel.main.RoutesConfigurer.configureRoutes(RoutesConfigurer.java:94) at org.apache.camel.main.BaseMainSupport.configureRoutes(BaseMainSupport.java:454) at org.apache.camel.main.BaseMainSupport.postProcessCamelContext(BaseMainSupport.java:474) at org.apache.camel.quarkus.main.CamelMain.initCamelContext(CamelMain.java:97) at org.apache.camel.quarkus.main.CamelMain.doInit(CamelMain.java:67) at org.apache.camel.support.service.BaseService.init(BaseService.java:83) at org.apache.camel.quarkus.main.CamelMain.startEngine(CamelMain.java:118) at org.apache.camel.quarkus.main.CamelMainRuntime.start(CamelMainRuntime.java:49) at org.apache.camel.quarkus.core.CamelBootstrapRecorder.start(CamelBootstrapRecorder.java:45) at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot-173480958.deploy_0(CamelBootstrapProcessor$boot-173480958.zig:101) at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot-173480958.deploy(CamelBootstrapProcessor$boot-173480958.zig:40) at io.quarkus.runner.ApplicationImpl.doStart(ApplicationImpl.zig:523) at io.quarkus.runtime.Application.start(Application.java:90) at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:97) at io.quarkus.runtime.Quarkus.run(Quarkus.java:66) at io.quarkus.runtime.Quarkus.run(Quarkus.java:42) at io.quarkus.runtime.Quarkus.run(Quarkus.java:119) at io.quarkus.runner.GeneratedMain.main(GeneratedMain.zig:29) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:48) at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:25) ``` ---------------------------------------------------------------- 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: us...@infra.apache.org