New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Basic groovy example generates "Ambiguous method overloading for method org.apache.camel.model.RouteDefinition#process" #1143
Comments
Thanks @jcordes73 for opening these issues, these examples used to work but there has been some breaking change in Camel that cause them to fail. I've opened https://issues.apache.org/jira/browse/CAMEL-14300 to fix it in one of next Camel version. In the meantime we should find some workaround for this and #1144. cc: @lburgazzoli |
Till we get it fixed, you can workaround it by coercing the closure to the type
|
fixed now |
When using Camel K Client 1.0.0-M4 the Groovy example (from https://camel.apache.org/camel-k/latest/languages/groovy.html)
from('timer:tick')
.process { it.in.body = 'Hello Camel K!' }
.to('log:info')
leads to the following error in the pod:
Starting the Java application using /opt/run-java/run-java.sh ...
exec java -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -XX:+ExitOnOutOfMemoryError -cp ./resources:/etc/camel/conf:/etc/camel/resources:/etc/camel/sources/i-source-000:dependencies/com.sun.xml.bind.jaxb-core-2.3.0.1.jar:dependencies/com.sun.xml.bind.jaxb-impl-2.3.0.jar:dependencies/commons-io.commons-io-2.6.jar:dependencies/javax.xml.bind.jaxb-api-2.3.0.jar:dependencies/org.apache.camel.camel-api-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-base-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-core-engine-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-endpointdsl-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-groovy-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-jaxp-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-log-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-main-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-management-api-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-support-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-timer-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-util-3.0.0-RC3.jar:dependencies/org.apache.camel.camel-util-json-3.0.0-RC3.jar:dependencies/org.apache.camel.k.camel-k-loader-groovy-1.0.7.jar:dependencies/org.apache.camel.k.camel-k-runtime-core-1.0.7.jar:dependencies/org.apache.camel.k.camel-k-runtime-main-1.0.7.jar:dependencies/org.apache.camel.spi-annotations-3.0.0-RC3.jar:dependencies/org.apache.commons.commons-lang3-3.9.jar:dependencies/org.apache.logging.log4j.log4j-api-2.12.1.jar:dependencies/org.apache.logging.log4j.log4j-core-2.12.1.jar:dependencies/org.apache.logging.log4j.log4j-slf4j-impl-2.12.1.jar:dependencies/org.codehaus.groovy.groovy-2.5.8.jar:dependencies/org.slf4j.slf4j-api-1.7.28.jar org.apache.camel.k.main.Application
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
2019-12-13 21:21:57.103 �[32mINFO �[m [main] ApplicationRuntime - Add listener: org.apache.camel.k.listener.ContextConfigurer@4e91d63f
2019-12-13 21:21:57.107 �[32mINFO �[m [main] ApplicationRuntime - Add listener: org.apache.camel.k.listener.RoutesConfigurer@5e316c74
2019-12-13 21:21:57.107 �[32mINFO �[m [main] ApplicationRuntime - Add listener: org.apache.camel.k.listener.RoutesDumper@161479c6
2019-12-13 21:21:57.121 �[32mINFO �[m [main] RuntimeSupport - Looking up loader for language: groovy
2019-12-13 21:21:57.333 �[32mINFO �[m [main] RuntimeSupport - Found loader org.apache.camel.k.loader.groovy.GroovyRoutesLoader@37313c65 for language groovy from service definition
2019-12-13 21:21:57.603 �[32mINFO �[m [main] RoutesConfigurer - Loading routes from: file:/etc/camel/sources/i-source-000/integration.groovy?language=groovy
2019-12-13 21:21:57.603 �[32mINFO �[m [main] ApplicationRuntime - Listener org.apache.camel.k.listener.RoutesConfigurer@5e316c74 executed in phase ConfigureRoutes
2019-12-13 21:21:57.613 �[32mINFO �[m [main] BaseMainSupport - Using properties from: file:/etc/camel/conf/application.properties
Exception in thread "main" groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method org.apache.camel.model.RouteDefinition#process.
Cannot resolve which method to invoke for [class Script1$_run_closure1] due to overlapping prototypes between:
[interface java.util.function.Supplier]
[interface org.apache.camel.Processor]
at groovy.lang.MetaClassImpl.doChooseMostSpecificParams(MetaClassImpl.java:3279)
at groovy.lang.MetaClassImpl.chooseMostSpecificParams(MetaClassImpl.java:3256)
at groovy.lang.MetaClassImpl.chooseMethodInternal(MetaClassImpl.java:3245)
at groovy.lang.MetaClassImpl.chooseMethod(MetaClassImpl.java:3188)
at groovy.lang.MetaClassImpl.getMethodWithCachingInternal(MetaClassImpl.java:1355)
at groovy.lang.MetaClassImpl.createPojoCallSite(MetaClassImpl.java:3434)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.createPojoSite(CallSiteArray.java:131)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallSite(CallSiteArray.java:165)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
at Script1.run(Script1.groovy:1)
at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:234)
at org.apache.camel.k.loader.groovy.GroovyRoutesLoader$1$_configure_closure1.doCall(GroovyRoutesLoader.groovy:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
at groovy.lang.Closure.call(Closure.java:405)
at groovy.lang.Closure.call(Closure.java:421)
at org.codehaus.groovy.runtime.IOGroovyMethods.withCloseable(IOGroovyMethods.java:1608)
at org.codehaus.groovy.runtime.dgm$913.doMethodInvoke(Unknown Source)
at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:234)
at org.apache.camel.k.loader.groovy.GroovyRoutesLoader$1.configure(GroovyRoutesLoader.groovy:51)
at org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:471)
at org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:438)
at org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:418)
at org.apache.camel.impl.engine.AbstractCamelContext.lambda$addRoutes$0(AbstractCamelContext.java:1114)
at org.apache.camel.impl.engine.AbstractCamelContext.doWithDefinedClassLoader(AbstractCamelContext.java:2455)
at org.apache.camel.impl.engine.AbstractCamelContext.addRoutes(AbstractCamelContext.java:1114)
at org.apache.camel.main.RoutesConfigurer.configureRoutes(RoutesConfigurer.java:84)
at org.apache.camel.main.BaseMainSupport.postProcessCamelContext(BaseMainSupport.java:549)
at org.apache.camel.main.BaseMainSupport.initCamelContext(BaseMainSupport.java:402)
at org.apache.camel.k.main.ApplicationRuntime$MainAdapter.doInit(ApplicationRuntime.java:168)
at org.apache.camel.support.service.ServiceSupport.init(ServiceSupport.java:62)
at org.apache.camel.support.service.ServiceSupport.start(ServiceSupport.java:90)
at org.apache.camel.main.MainSupport.run(MainSupport.java:77)
at org.apache.camel.k.main.ApplicationRuntime.run(ApplicationRuntime.java:70)
at org.apache.camel.k.main.Application.main(Application.java:42)
The text was updated successfully, but these errors were encountered: