apache / camel-k

Apache Camel K is a lightweight integration platform, born on Kubernetes, with serverless superpowers
https://camel.apache.org/camel-k
Apache License 2.0
863 stars 344 forks source link

Pipe error handler not working with Camel 4.4.0 #5242

Closed christophd closed 6 months ago

christophd commented 6 months ago

What happened?

Since Camel 4.4.0 the Kamelets error handler has been removed and noErrorHandler is used by default (see https://github.com/apache/camel/commit/5e2a89635bde02df40925f65b430882b35a60bd0 and https://issues.apache.org/jira/browse/CAMEL-19411)

This also has impact on the Pipe error handler (see failing tests in nightly runtime checks https://github.com/apache/camel-k/actions/workflows/nightly-latest-runtime.yml)

There is a new option on the camel-kamelets component that resets to the former error handler behavior (camel.component.kamelet.noErrorHandler=false). We may set this when the Pipe uses an error handler to get it back working.

Steps to reproduce

  1. Run pipe_test.go E2E test with 3.8.0-SNAPSHOT runtime version

Relevant log output

Integration 'throw-error-binding' is now running. Showing log ...
[1] Monitoring pod throw-error-binding-5496bf788d-nsc6l
[1] exec java -cp ./resources:/etc/camel/application.properties:/etc/camel/conf.d/_resources:/etc/camel/conf.d/user.properties:/etc/camel/kamelets/kamelets-bundle-throw-error-binding-001:/etc/camel/resources:/etc/camel/sources/camel-k-embedded-error-handler.yaml:/etc/camel/sources/camel-k-embedded-flow.yaml:dependencies/app/camel-k-integration-2.3.0-SNAPSHOT.jar:dependencies/lib/boot/io.github.crac.org-crac-0.1.3.jar:dependencies/lib/boot/io.quarkus.quarkus-bootstrap-runner-3.8.1.jar:dependencies/lib/boot/io.quarkus.quarkus-development-mode-spi-3.8.1.jar:dependencies/lib/boot/io.quarkus.quarkus-vertx-latebound-mdc-provider-3.8.1.jar:dependencies/lib/boot/io.smallrye.common.smallrye-common-constraint-2.1.2.jar:dependencies/lib/boot/io.smallrye.common.smallrye-common-cpu-2.1.2.jar:dependencies/lib/boot/io.smallrye.common.smallrye-common-expression-2.1.2.jar:dependencies/lib/boot/io.smallrye.common.smallrye-common-function-2.1.2.jar:dependencies/lib/boot/io.smallrye.common.smallrye-common-io-2.1.2.jar:dependencies/lib/boot/io.smallrye.common.smallrye-common-net-2.1.2.jar:dependencies/lib/boot/io.smallrye.common.smallrye-common-os-2.1.2.jar:dependencies/lib/boot/io.smallrye.common.smallrye-common-ref-2.1.2.jar:dependencies/lib/boot/jakarta.json.jakarta.json-api-2.1.3.jar:dependencies/lib/boot/org.eclipse.parsson.parsson-1.1.5.jar:dependencies/lib/boot/org.jboss.logging.jboss-logging-3.5.3.Final.jar:dependencies/lib/boot/org.jboss.logmanager.jboss-logmanager-3.0.4.Final.jar:dependencies/lib/main/com.aayushatharva.brotli4j.brotli4j-1.14.0.jar:dependencies/lib/main/com.aayushatharva.brotli4j.native-linux-aarch64-1.14.0.jar:dependencies/lib/main/com.aayushatharva.brotli4j.service-1.14.0.jar:dependencies/lib/main/com.fasterxml.jackson.core.jackson-annotations-2.16.1.jar:dependencies/lib/main/com.fasterxml.jackson.core.jackson-core-2.16.1.jar:dependencies/lib/main/com.fasterxml.jackson.core.jackson-databind-2.16.1.jar:dependencies/lib/main/com.fasterxml.jackson.dataformat.jackson-dataformat-yaml-2.16.1.jar:dependencies/lib/main/com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.16.1.jar:dependencies/lib/main/com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.16.1.jar:dependencies/lib/main/com.fasterxml.jackson.module.jackson-module-parameter-names-2.16.1.jar:dependencies/lib/main/com.github.mifmif.generex-1.0.2.jar:dependencies/lib/main/commons-io.commons-io-2.15.1.jar:dependencies/lib/main/dk.brics.automaton.automaton-1.11-8.jar:dependencies/lib/main/io.fabric8.kubernetes-client-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-client-api-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-httpclient-vertx-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-admissionregistration-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-apiextensions-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-apps-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-autoscaling-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-batch-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-certificates-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-common-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-coordination-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-core-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-discovery-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-events-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-extensions-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-flowcontrol-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-gatewayapi-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-metrics-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-networking-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-node-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-policy-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-rbac-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-resource-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-scheduling-6.10.0.jar:dependencies/lib/main/io.fabric8.kubernetes-model-storageclass-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-client-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-client-api-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-model-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-model-clusterautoscaling-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-model-config-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-model-console-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-model-installer-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-model-machine-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-model-machineconfig-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-model-monitoring-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-model-operatorhub-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-model-storageversionmigrator-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-model-tuned-6.10.0.jar:dependencies/lib/main/io.fabric8.openshift-model-whereabouts-6.10.0.jar:dependencies/lib/main/io.fabric8.zjsonpatch-0.3.0.jar:dependencies/lib/main/io.netty.netty-buffer-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-codec-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-codec-dns-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-codec-haproxy-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-codec-http-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-codec-http2-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-codec-socks-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-common-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-handler-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-handler-proxy-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-resolver-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-resolver-dns-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-transport-4.1.106.Final.jar:dependencies/lib/main/io.netty.netty-transport-native-unix-common-4.1.106.Final.jar:dependencies/lib/main/io.quarkus.arc.arc-3.8.1.jar:dependencies/lib/main/io.quarkus.quarkus-arc-3.8.1.jar:dependencies/lib/main/io.quarkus.quarkus-core-3.8.1.jar:dependencies/lib/main/io.quarkus.quarkus-fs-util-0.0.10.jar:dependencies/lib/main/io.quarkus.quarkus-jackson-3.8.1.jar:dependencies/lib/main/io.quarkus.quarkus-jsonp-3.8.1.jar:dependencies/lib/main/io.quarkus.quarkus-kubernetes-client-3.8.1.jar:dependencies/lib/main/io.quarkus.quarkus-kubernetes-client-internal-3.8.1.jar:dependencies/lib/main/io.quarkus.quarkus-logging-json-3.8.1.jar:dependencies/lib/main/io.quarkus.quarkus-mutiny-3.8.1.jar:dependencies/lib/main/io.quarkus.quarkus-netty-3.8.1.jar:dependencies/lib/main/io.quarkus.quarkus-smallrye-context-propagation-3.8.1.jar:dependencies/lib/main/io.quarkus.quarkus-vertx-3.8.1.jar:dependencies/lib/main/io.quarkus.quarkus-virtual-threads-3.8.1.jar:dependencies/lib/main/io.smallrye.common.smallrye-common-annotation-2.1.2.jar:dependencies/lib/main/io.smallrye.common.smallrye-common-classloader-2.1.2.jar:dependencies/lib/main/io.smallrye.common.smallrye-common-vertx-context-2.1.2.jar:dependencies/lib/main/io.smallrye.config.smallrye-config-3.5.4.jar:dependencies/lib/main/io.smallrye.config.smallrye-config-common-3.5.4.jar:dependencies/lib/main/io.smallrye.config.smallrye-config-core-3.5.4.jar:dependencies/lib/main/io.smallrye.config.smallrye-config-source-yaml-3.5.4.jar:dependencies/lib/main/io.smallrye.reactive.mutiny-2.5.7.jar:dependencies/lib/main/io.smallrye.reactive.mutiny-smallrye-context-propagation-2.5.7.jar:dependencies/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-core-3.9.0.jar:dependencies/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-runtime-3.9.0.jar:dependencies/lib/main/io.smallrye.reactive.vertx-mutiny-generator-3.9.0.jar:dependencies/lib/main/io.smallrye.smallrye-context-propagation-2.1.0.jar:dependencies/lib/main/io.smallrye.smallrye-context-propagation-api-2.1.0.jar:dependencies/lib/main/io.smallrye.smallrye-context-propagation-storage-2.1.0.jar:dependencies/lib/main/io.smallrye.smallrye-fault-tolerance-vertx-6.2.6.jar:dependencies/lib/main/io.vertx.vertx-auth-common-4.5.3.jar:dependencies/lib/main/io.vertx.vertx-codegen-4.5.3.jar:dependencies/lib/main/io.vertx.vertx-core-4.5.3.jar:dependencies/lib/main/io.vertx.vertx-web-client-4.5.3.jar:dependencies/lib/main/io.vertx.vertx-web-common-4.5.3.jar:dependencies/lib/main/jakarta.activation.jakarta.activation-api-2.1.2.jar:dependencies/lib/main/jakarta.annotation.jakarta.annotation-api-2.1.1.jar:dependencies/lib/main/jakarta.el.jakarta.el-api-5.0.1.jar:dependencies/lib/main/jakarta.enterprise.jakarta.enterprise.cdi-api-4.0.1.jar:dependencies/lib/main/jakarta.enterprise.jakarta.enterprise.lang-model-4.0.1.jar:dependencies/lib/main/jakarta.inject.jakarta.inject-api-2.0.1.jar:dependencies/lib/main/jakarta.interceptor.jakarta.interceptor-api-2.1.0.jar:dependencies/lib/main/jakarta.transaction.jakarta.transaction-api-2.0.1.jar:dependencies/lib/main/jakarta.xml.bind.jakarta.xml.bind-api-4.0.1.jar:dependencies/lib/main/org.apache.camel.camel-api-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-base-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-base-engine-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-bean-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-cloud-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-cluster-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-componentdsl-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-core-catalog-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-core-engine-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-core-languages-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-core-model-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-core-processor-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-core-reifier-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-dsl-support-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-endpointdsl-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-kamelet-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-kubernetes-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-log-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-main-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-management-api-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-microprofile-config-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-support-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-timer-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-tooling-model-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-util-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-util-json-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-xml-jaxp-util-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-yaml-dsl-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-yaml-dsl-common-4.4.0.jar:dependencies/lib/main/org.apache.camel.camel-yaml-dsl-deserializers-4.4.0.jar:dependencies/lib/main/org.apache.camel.k.camel-k-core-3.8.0-SNAPSHOT.jar:dependencies/lib/main/org.apache.camel.k.camel-k-core-api-3.8.0-SNAPSHOT.jar:dependencies/lib/main/org.apache.camel.k.camel-k-core-support-3.8.0-SNAPSHOT.jar:dependencies/lib/main/org.apache.camel.k.camel-k-runtime-3.8.0-SNAPSHOT.jar:dependencies/lib/main/org.apache.camel.quarkus.camel-quarkus-bean-3.8.0.jar:dependencies/lib/main/org.apache.camel.quarkus.camel-quarkus-core-3.8.0.jar:dependencies/lib/main/org.apache.camel.quarkus.camel-quarkus-core-cloud-3.8.0.jar:dependencies/lib/main/org.apache.camel.quarkus.camel-quarkus-kamelet-3.8.0.jar:dependencies/lib/main/org.apache.camel.quarkus.camel-quarkus-kubernetes-3.8.0.jar:dependencies/lib/main/org.apache.camel.quarkus.camel-quarkus-log-3.8.0.jar:dependencies/lib/main/org.apache.camel.quarkus.camel-quarkus-support-commons-logging-3.8.0.jar:dependencies/lib/main/org.apache.camel.quarkus.camel-quarkus-timer-3.8.0.jar:dependencies/lib/main/org.apache.camel.quarkus.camel-quarkus-yaml-dsl-3.8.0.jar:dependencies/lib/main/org.apache.commons.commons-compress-1.26.0.jar:dependencies/lib/main/org.apache.commons.commons-lang3-3.14.0.jar:dependencies/lib/main/org.eclipse.microprofile.config.microprofile-config-api-3.0.3.jar:dependencies/lib/main/org.eclipse.microprofile.context-propagation.microprofile-context-propagation-api-1.3.jar:dependencies/lib/main/org.jboss.logging.commons-logging-jboss-logging-1.0.0.Final.jar:dependencies/lib/main/org.jboss.logging.jboss-logging-annotations-2.2.1.Final.jar:dependencies/lib/main/org.jboss.slf4j.slf4j-jboss-logmanager-2.0.0.Final.jar:dependencies/lib/main/org.jboss.threads.jboss-threads-3.5.1.Final.jar:dependencies/lib/main/org.slf4j.slf4j-api-2.0.6.jar:dependencies/lib/main/org.snakeyaml.snakeyaml-engine-2.7.jar:dependencies/lib/main/org.wildfly.common.wildfly-common-1.7.0.Final.jar:dependencies/lib/main/org.yaml.snakeyaml-2.2.jar:dependencies/quarkus-app-dependencies.txt:dependencies/quarkus-run.jar:dependencies/quarkus/generated-bytecode.jar:dependencies/quarkus/quarkus-application.dat:dependencies/quarkus/transformed-bytecode.jar io.quarkus.bootstrap.runner.QuarkusEntryPoint
[1] 2024-03-11 18:52:32,130 INFO  [org.apa.cam.k.Runtime] (main) Apache Camel K Runtime 3.8.0-SNAPSHOT
[1] 2024-03-11 18:52:32,131 INFO  [org.apa.cam.qua.cor.CamelBootstrapRecorder] (main) Bootstrap runtime: org.apache.camel.quarkus.main.CamelMainRuntime
[1] 2024-03-11 18:52:32,132 INFO  [org.apa.cam.mai.MainSupport] (main) Apache Camel (Main) 4.4.0 is starting
[1] 2024-03-11 18:52:32,151 INFO  [org.apa.cam.k.sup.SourcesSupport] (main) Loading routes from: SourceDefinition{name='camel-k-embedded-error-handler', language='yaml', type='errorHandler', location='file:/etc/camel/sources/camel-k-embedded-error-handler.yaml', }
[1] 2024-03-11 18:52:32,173 INFO  [org.apa.cam.k.sup.SourcesSupport] (main) Loading routes from: SourceDefinition{name='camel-k-embedded-flow', language='yaml', type='source', location='file:/etc/camel/sources/camel-k-embedded-flow.yaml', }
[1] 2024-03-11 18:52:32,219 WARN  [org.apa.cam.dsl.yam.des.CustomResolver] (main) The kebab-case 'error-handler' is deprecated and it will be removed in the next version. Use the camelCase 'errorHandler' instead.
[1] 2024-03-11 18:52:32,279 INFO  [org.apa.cam.imp.eng.AbstractCamelContext] (main) Apache Camel 4.4.0 (camel-1) is starting
[1] 2024-03-11 18:52:32,288 INFO  [org.apa.cam.imp.eng.AbstractCamelContext] (main) Routes startup (started:4)
[1] 2024-03-11 18:52:32,289 INFO  [org.apa.cam.imp.eng.AbstractCamelContext] (main)     Started binding (kamelet://my-own-error-producer-source/source)
[1] 2024-03-11 18:52:32,289 INFO  [org.apa.cam.imp.eng.AbstractCamelContext] (main)     Started source (timer://tick)
[1] 2024-03-11 18:52:32,289 INFO  [org.apa.cam.imp.eng.AbstractCamelContext] (main)     Started sink (kamelet://source)
[1] 2024-03-11 18:52:32,289 INFO  [org.apa.cam.imp.eng.AbstractCamelContext] (main)     Started errorHandler (kamelet://source)
[1] 2024-03-11 18:52:32,289 INFO  [org.apa.cam.imp.eng.AbstractCamelContext] (main) Apache Camel 4.4.0 (camel-1) started in 9ms (build:0ms init:0ms start:9ms)
[1] 2024-03-11 18:52:32,291 INFO  [io.quarkus] (main) camel-k-integration 2.3.0-SNAPSHOT on JVM (powered by Quarkus 3.8.1) started in 0.920s.
[1] 2024-03-11 18:52:32,292 INFO  [io.quarkus] (main) Profile prod activated.
[1] 2024-03-11 18:52:32,292 INFO  [io.quarkus] (main) Installed features: [camel-bean, camel-core, camel-k-core, camel-k-runtime, camel-kamelet, camel-kubernetes, camel-log, camel-timer, camel-yaml-dsl, cdi, kubernetes-client, smallrye-context-propagation, vertx]
[1] 2024-03-11 18:52:33,313 WARN  [org.apa.cam.com.tim.TimerConsumer] (Camel (camel-1) thread #1 - timer://tick) Error processing exchange. Exchange[]. Caused by: [org.apache.camel.CamelExecutionException - Exception occurred during execution on the exchange: Exchange[]]: org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[]
[1]     at org.apache.camel.CamelExecutionException.wrapCamelExecutionException(CamelExecutionException.java:45)
[1]     at org.apache.camel.language.simple.SimpleExpressionBuilder$28.evaluate(SimpleExpressionBuilder.java:735)
[1]     at org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:45)
[1]     at org.apache.camel.processor.SetBodyProcessor.process(SetBodyProcessor.java:45)
[1]     at org.apache.camel.processor.errorhandler.NoErrorHandler.process(NoErrorHandler.java:46)
[1]     at org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:354)
[1]     at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:330)
[1]     at org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:102)
[1]     at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
[1]     at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
[1]     at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
[1]     at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
[1]     at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
[1]     at org.apache.camel.processor.Pipeline.process(Pipeline.java:163)
[1]     at org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:354)
[1]     at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:330)
[1]     at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:293)
[1]     at org.apache.camel.component.timer.TimerConsumer$1.doRun(TimerConsumer.java:164)
[1]     at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:136)
[1]     at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
[1]     at java.base/java.util.TimerThread.run(Timer.java:516)
[1] Caused by: org.apache.camel.InvalidPayloadException: No body available of type: java.lang.Boolean but has type: java.lang.String on: Message. Caused by: No type converter available to convert from type: java.lang.String to the required type: java.lang.Boolean. Exchange[]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: java.lang.String to the required type: java.lang.Boolean]
[1]     at org.apache.camel.support.MessageSupport.getMandatoryBody(MessageSupport.java:128)
[1]     at org.apache.camel.language.simple.SimpleExpressionBuilder$28.evaluate(SimpleExpressionBuilder.java:733)
[1]     ... 19 more
[1] Caused by: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: java.lang.String to the required type: java.lang.Boolean
[1]     at org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:199)
[1]     at org.apache.camel.support.MessageSupport.getMandatoryBody(MessageSupport.java:126)
[1]     ... 20 more

Camel K version

2.3.0-SNAPSHOT

christophd commented 6 months ago

@davsclaus setting camel.component.kamelet.noErrorHandler=false would be an option but I think there is a better way when we set the error handler properly for the route, right? could you please advice how we should be adding the Pipe error handler so that it works as expected with Camel 4.4.0 🙏 many thanks

davsclaus commented 6 months ago

Do you have a sample code for camel jbang that would be easier to look at

christophd commented 6 months ago

I had a look into how Camel JBang handles the error handler on a Pipe and found this example here:

https://github.com/apache/camel/blob/main/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/PipeLoaderTest.groovy#L371

I guess this is the proper way to set the error handler factory on the routeDefinition to a DeadLetterChannelDefinition for instance. Then is also works with the noErrorHandler setting in Camel 4.4, right?

davsclaus commented 6 months ago

Yes camel-yaml-dsl setup the pipe error handler on the route as a pure standard camel fashion. https://github.com/apache/camel/blob/78bd6d70f5af6997d3b4a21085b1bbbde4e2cf70/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java#L828

christophd commented 6 months ago

Relates to https://github.com/apache/camel/pull/13489