[jira] [Created] (CAMEL-21599) Global Error Handler fail when a Kamelet fails
Pasquale Congiusti created CAMEL-21599: -- Summary: Global Error Handler fail when a Kamelet fails Key: CAMEL-21599 URL: https://issues.apache.org/jira/browse/CAMEL-21599 Project: Camel Issue Type: Bug Affects Versions: 4.9.0 Reporter: Pasquale Congiusti I found a faulty behavior when configuring a global error handler and the failure is caused by the execution of a Kamelet. The following route works correctly: {code} - route: errorHandler: deadLetterChannel: deadLetterUri: kamelet:log-sink/errorHandler from: uri: timer:tick steps: - setBody: constant: "fail!" - setBody: simple: "${mandatoryBodyAs(Boolean)}" - log: "${body}" {code} It intercept the failing execution and forward the failure to the DLC. However, if the producer URI contains a failing Kamelet, then, the global error handler is not working. Wrapping the same failing logic in a local Kamelet like: {code} apiVersion: camel.apache.org/v1 kind: Kamelet metadata: name: my-err-source labels: camel.apache.org/kamelet.type: "source" spec: definition: title: "Timer Example" description: "Produces periodic events with a custom payload" required: - message properties: period: title: Period description: The time interval between two events type: integer default: 1000 message: title: Message description: The message to generate type: string types: out: mediaType: text/plain template: from: uri: timer:tick parameters: period: "{{period}}" steps: - setBody: constant: "{{message}}" - setBody: simple: "${mandatoryBodyAs(Boolean)}" - setHeader: name: "Content-Type" constant: "text/plain" - to: "kamelet:sink" {code} And executing a new route as: {code} - route: errorHandler: deadLetterChannel: deadLetterUri: kamelet:log-sink/errorHandler from: uri: "kamelet:my-err-source/source" parameters: message: "fail!" steps: - log: "${body}" {code} Will act as no error handler is set at all, logging a Warn: {code} $ camel run * 2025-01-07 15:35:45.263 INFO 610120 --- [ main] org.apache.camel.main.MainSupport: Apache Camel (JBang) 4.9.0 is starting 2025-01-07 15:35:45.332 INFO 610120 --- [ main] org.apache.camel.main.MainSupport: Additional files added to classpath: console.log 2025-01-07 15:35:45.478 INFO 610120 --- [ main] org.apache.camel.main.MainSupport: Using Java 17.0.7 with PID 610120. Started by squake in /home/squake/workspace/camel-k/kamelet 2025-01-07 15:35:45.615 INFO 610120 --- [ main] org.apache.camel.main.ProfileConfigurer : The application is starting with profile: dev 2025-01-07 15:35:45.970 INFO 610120 --- [ main] he.camel.cli.connector.LocalCliConnector : Camel JBang CLI enabled 2025-01-07 15:35:46.124 INFO 610120 --- [ main] e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.9.0 (my-err-source) is starting 2025-01-07 15:35:46.390 INFO 610120 --- [ main] e.camel.impl.engine.AbstractCamelContext : Routes startup (total:1 started:1 kamelets:1) 2025-01-07 15:35:46.390 INFO 610120 --- [ main] e.camel.impl.engine.AbstractCamelContext : Started route1 (timer://tick) 2025-01-07 15:35:46.391 INFO 610120 --- [ main] e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.9.0 (my-err-source) started in 266ms (build:0ms init:0ms start:266ms boot:858ms) 2025-01-07 15:35:47.329 INFO 610120 --- [ - timer://tick] log-sink : Exchange[ExchangePattern: InOnly, BodyType: String, Body: fail!] 2025-01-07 15:35:48.283 INFO 610120 --- [ - timer://tick] log-sink : Exchange[ExchangePattern: InOnly, BodyType: String, Body: fail!] 2025-01-07 15:35:49.283 INFO 610120 --- [ - timer://tick] log-sink : Exchange[ExchangePattern: InOnly, BodyType: String, Body: fail!] ^C2025-01-07 15:35:49.678 INFO 610120 --- [ngupInterceptor] e.camel.main.DefaultMainShutdownStrategy : JVM shutdown hook triggered by SIGTERM (PID 610120). Shutting down Apache Camel (JBang) 4.9.0 2025-01-07 15:35:49.682 INFO 610120 --- [ main] e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.9.0 (my-err-source) is shutting down (timeout:10s) 2025-01-07 15:35:49.712 INFO 610120 --- [ main] e.camel.impl.engine.AbstractCamelContext : Routes stopped (total:1 stopped:1 kamelets:1) 2025-01-07 15:35:49.712 INFO 610120 --- [ main] e.camel.impl.engine.AbstractCamelContext : Stopped route1 (timer://tick) 2025-01-07 15:35:49.720 INFO
[jira] [Commented] (CAMEL-21599) Global Error Handler does not take effect when a producer Kamelet fails
[ https://issues.apache.org/jira/browse/CAMEL-21599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17910646#comment-17910646 ] Pasquale Congiusti commented on CAMEL-21599: I may contribute to the fix, but I'd need some direction to understand where and when the global error handler is set in order to verify why it's not taking effect. > Global Error Handler does not take effect when a producer Kamelet fails > --- > > Key: CAMEL-21599 > URL: https://issues.apache.org/jira/browse/CAMEL-21599 > Project: Camel > Issue Type: Bug >Affects Versions: 4.9.0 >Reporter: Pasquale Congiusti >Priority: Major > > I found a faulty behavior when configuring a global error handler and the > failure is caused by the execution of a Kamelet. > The following route works correctly: > {code} > - route: > errorHandler: > deadLetterChannel: > deadLetterUri: kamelet:log-sink/errorHandler > from: > uri: timer:tick > steps: > - setBody: > constant: "fail!" > - setBody: > simple: "${mandatoryBodyAs(Boolean)}" > - log: "${body}" > {code} > It intercept the failing execution and forward the failure to the DLC. > However, if the producer URI contains a failing Kamelet, then, the global > error handler is not working. Wrapping the same failing logic in a local > Kamelet like: > {code} > apiVersion: camel.apache.org/v1 > kind: Kamelet > metadata: > name: my-err-source > labels: > camel.apache.org/kamelet.type: "source" > spec: > definition: > title: "Timer Example" > description: "Produces periodic events with a custom payload" > required: > - message > properties: > period: > title: Period > description: The time interval between two events > type: integer > default: 1000 > message: > title: Message > description: The message to generate > type: string > types: > out: > mediaType: text/plain > template: > from: > uri: timer:tick > parameters: > period: "{{period}}" > steps: > - setBody: > constant: "{{message}}" > - setBody: > simple: "${mandatoryBodyAs(Boolean)}" > - setHeader: > name: "Content-Type" > constant: "text/plain" > - to: "kamelet:sink" > {code} > And executing a new route as: > {code} > - route: > errorHandler: > deadLetterChannel: > deadLetterUri: kamelet:log-sink/errorHandler > from: > uri: "kamelet:my-err-source/source" > parameters: > message: "fail!" > steps: > - log: "${body}" > {code} > Will act as no error handler is set at all, logging a Warn: > {code} > $ camel run * > 2025-01-07 15:35:45.263 INFO 610120 --- [ main] > org.apache.camel.main.MainSupport: Apache Camel (JBang) 4.9.0 is > starting > 2025-01-07 15:35:45.332 INFO 610120 --- [ main] > org.apache.camel.main.MainSupport: Additional files added to > classpath: console.log > 2025-01-07 15:35:45.478 INFO 610120 --- [ main] > org.apache.camel.main.MainSupport: Using Java 17.0.7 with PID 610120. > Started by squake in /home/squake/workspace/camel-k/kamelet > 2025-01-07 15:35:45.615 INFO 610120 --- [ main] > org.apache.camel.main.ProfileConfigurer : The application is starting with > profile: dev > 2025-01-07 15:35:45.970 INFO 610120 --- [ main] > he.camel.cli.connector.LocalCliConnector : Camel JBang CLI enabled > 2025-01-07 15:35:46.124 INFO 610120 --- [ main] > e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.9.0 (my-err-source) > is starting > 2025-01-07 15:35:46.390 INFO 610120 --- [ main] > e.camel.impl.engine.AbstractCamelContext : Routes startup (total:1 started:1 > kamelets:1) > 2025-01-07 15:35:46.390 INFO 610120 --- [ main] > e.camel.impl.engine.AbstractCamelContext : Started route1 (timer://tick) > 2025-01-07 15:35:46.391 INFO 610120 --- [ main] > e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.9.0 (my-err-source) > started in 266ms (build:0ms init:0ms start:266ms boot:858ms) > 2025-01-07 15:35:47.329 INFO 610120 --- [ - timer://tick] log-sink > : Exchange[ExchangePattern: InOnly, BodyType: String, > Body: fail!] > 2025-01-07 15:35:48.283 INFO 610120 --- [ - timer://tick] log-sink > : Exchange[ExchangePattern: InOnly, BodyType: String, > Body: fail!] > 2025-01-07 15:35:49.283 INFO 610120 --- [ - timer://tick] log-sink > : Exchange[ExchangePattern: InOnly, BodyType: String, > Body: fail!]
[jira] [Updated] (CAMEL-21599) Global Error Handler does not take effect when a producer Kamelet fails
[ https://issues.apache.org/jira/browse/CAMEL-21599?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pasquale Congiusti updated CAMEL-21599: --- Summary: Global Error Handler does not take effect when a producer Kamelet fails (was: Global Error Handler fail when a Kamelet fails) > Global Error Handler does not take effect when a producer Kamelet fails > --- > > Key: CAMEL-21599 > URL: https://issues.apache.org/jira/browse/CAMEL-21599 > Project: Camel > Issue Type: Bug >Affects Versions: 4.9.0 >Reporter: Pasquale Congiusti >Priority: Major > > I found a faulty behavior when configuring a global error handler and the > failure is caused by the execution of a Kamelet. > The following route works correctly: > {code} > - route: > errorHandler: > deadLetterChannel: > deadLetterUri: kamelet:log-sink/errorHandler > from: > uri: timer:tick > steps: > - setBody: > constant: "fail!" > - setBody: > simple: "${mandatoryBodyAs(Boolean)}" > - log: "${body}" > {code} > It intercept the failing execution and forward the failure to the DLC. > However, if the producer URI contains a failing Kamelet, then, the global > error handler is not working. Wrapping the same failing logic in a local > Kamelet like: > {code} > apiVersion: camel.apache.org/v1 > kind: Kamelet > metadata: > name: my-err-source > labels: > camel.apache.org/kamelet.type: "source" > spec: > definition: > title: "Timer Example" > description: "Produces periodic events with a custom payload" > required: > - message > properties: > period: > title: Period > description: The time interval between two events > type: integer > default: 1000 > message: > title: Message > description: The message to generate > type: string > types: > out: > mediaType: text/plain > template: > from: > uri: timer:tick > parameters: > period: "{{period}}" > steps: > - setBody: > constant: "{{message}}" > - setBody: > simple: "${mandatoryBodyAs(Boolean)}" > - setHeader: > name: "Content-Type" > constant: "text/plain" > - to: "kamelet:sink" > {code} > And executing a new route as: > {code} > - route: > errorHandler: > deadLetterChannel: > deadLetterUri: kamelet:log-sink/errorHandler > from: > uri: "kamelet:my-err-source/source" > parameters: > message: "fail!" > steps: > - log: "${body}" > {code} > Will act as no error handler is set at all, logging a Warn: > {code} > $ camel run * > 2025-01-07 15:35:45.263 INFO 610120 --- [ main] > org.apache.camel.main.MainSupport: Apache Camel (JBang) 4.9.0 is > starting > 2025-01-07 15:35:45.332 INFO 610120 --- [ main] > org.apache.camel.main.MainSupport: Additional files added to > classpath: console.log > 2025-01-07 15:35:45.478 INFO 610120 --- [ main] > org.apache.camel.main.MainSupport: Using Java 17.0.7 with PID 610120. > Started by squake in /home/squake/workspace/camel-k/kamelet > 2025-01-07 15:35:45.615 INFO 610120 --- [ main] > org.apache.camel.main.ProfileConfigurer : The application is starting with > profile: dev > 2025-01-07 15:35:45.970 INFO 610120 --- [ main] > he.camel.cli.connector.LocalCliConnector : Camel JBang CLI enabled > 2025-01-07 15:35:46.124 INFO 610120 --- [ main] > e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.9.0 (my-err-source) > is starting > 2025-01-07 15:35:46.390 INFO 610120 --- [ main] > e.camel.impl.engine.AbstractCamelContext : Routes startup (total:1 started:1 > kamelets:1) > 2025-01-07 15:35:46.390 INFO 610120 --- [ main] > e.camel.impl.engine.AbstractCamelContext : Started route1 (timer://tick) > 2025-01-07 15:35:46.391 INFO 610120 --- [ main] > e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.9.0 (my-err-source) > started in 266ms (build:0ms init:0ms start:266ms boot:858ms) > 2025-01-07 15:35:47.329 INFO 610120 --- [ - timer://tick] log-sink > : Exchange[ExchangePattern: InOnly, BodyType: String, > Body: fail!] > 2025-01-07 15:35:48.283 INFO 610120 --- [ - timer://tick] log-sink > : Exchange[ExchangePattern: InOnly, BodyType: String, > Body: fail!] > 2025-01-07 15:35:49.283 INFO 610120 --- [ - timer://tick] log-sink > : Exchange[ExchangePattern: InOnly, BodyType: String, > Body: fail!] > ^C2025-01-07 15:35:49.678 INFO 610120 --- [ngupInterceptor] > e.camel.main.Defau
[jira] [Updated] (CAMEL-21599) Global Error Handler does not take effect when a producer Kamelet fails
[ https://issues.apache.org/jira/browse/CAMEL-21599?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pasquale Congiusti updated CAMEL-21599: --- Description: I found a faulty behavior when configuring a global error handler and the failure is caused by the execution of a Kamelet. The following route works correctly: {code} - route: errorHandler: deadLetterChannel: deadLetterUri: kamelet:log-sink/errorHandler from: uri: timer:tick steps: - setBody: constant: "fail!" - setBody: simple: "${mandatoryBodyAs(Boolean)}" - log: "${body}" {code} It intercept the failing execution and forward the failure to the DLC. However, if the producer URI contains a failing Kamelet, then, the global error handler is not working. Wrapping the same failing logic in a local Kamelet like: {code} apiVersion: camel.apache.org/v1 kind: Kamelet metadata: name: my-err-source labels: camel.apache.org/kamelet.type: "source" spec: definition: title: "Timer Example" description: "Produces periodic events with a custom payload" required: - message properties: period: title: Period description: The time interval between two events type: integer default: 1000 message: title: Message description: The message to generate type: string types: out: mediaType: text/plain template: from: uri: timer:tick parameters: period: "{{period}}" steps: - setBody: constant: "{{message}}" - setBody: simple: "${mandatoryBodyAs(Boolean)}" - setHeader: name: "Content-Type" constant: "text/plain" - to: "kamelet:sink" {code} And executing a new route as: {code} - route: errorHandler: deadLetterChannel: deadLetterUri: kamelet:log-sink/errorHandler from: uri: "kamelet:my-err-source/source" parameters: message: "fail!" steps: - log: "${body}" {code} Will act as no error handler is set at all, logging a Warn: {code} $ camel run * camel run * 2025-01-07 15:36:45.452 INFO 611589 --- [ main] org.apache.camel.main.MainSupport: Apache Camel (JBang) 4.9.0 is starting 2025-01-07 15:36:45.522 INFO 611589 --- [ main] org.apache.camel.main.MainSupport: Additional files added to classpath: console.log 2025-01-07 15:36:45.652 INFO 611589 --- [ main] org.apache.camel.main.MainSupport: Using Java 17.0.7 with PID 611589. Started by squake in /home/squake/workspace/camel-k/kamelet 2025-01-07 15:36:45.837 INFO 611589 --- [ main] org.apache.camel.main.ProfileConfigurer : The application is starting with profile: dev 2025-01-07 15:36:46.197 INFO 611589 --- [ main] he.camel.cli.connector.LocalCliConnector : Camel JBang CLI enabled 2025-01-07 15:36:46.350 INFO 611589 --- [ main] e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.9.0 (my-err-source) is starting 2025-01-07 15:36:46.497 INFO 611589 --- [ main] org.apache.camel.main.BaseMainSupport: Property-placeholders summary 2025-01-07 15:36:46.498 INFO 611589 --- [ main] org.apache.camel.main.BaseMainSupport: [my-err-source.kamelet.yaml] message = fail! 2025-01-07 15:36:46.611 INFO 611589 --- [ main] e.camel.impl.engine.AbstractCamelContext : Routes startup (total:1 started:1 kamelets:2) 2025-01-07 15:36:46.612 INFO 611589 --- [ main] e.camel.impl.engine.AbstractCamelContext : Started route1 (kamelet://my-err-source/source) 2025-01-07 15:36:46.612 INFO 611589 --- [ main] e.camel.impl.engine.AbstractCamelContext : Apache Camel 4.9.0 (my-err-source) started in 261ms (build:0ms init:0ms start:261ms boot:895ms) 2025-01-07 15:36:47.543 WARN 611589 --- [ - timer://tick] ache.camel.component.timer.TimerConsumer : Error processing exchange. Exchange[FE1CC7B02A4822F-]. Caused by: [org.apache.camel.CamelExecutionException - Exception occurred during execution on the exchange: Exchange[FE1CC7B02A4822F-]] org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[FE1CC7B02A4822F-] at org.apache.camel.CamelExecutionException.wrapCamelExecutionException(CamelExecutionException.java:45) ~[camel-api-4.9.0.jar:4.9.0] at org.apache.camel.language.simple.SimpleExpressionBuilder$31.evaluate(SimpleExpressionBuilder.java:838) ~[camel-core-languages-4.9.0.jar:4.9.0] at org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:45) ~[camel-support-4.9.0.jar:4.9.0] at org.apache.camel.processor.SetBodyProcessor.process(SetBodyProcessor.java:45) ~[camel-core-processor-4.9.0.jar:4.9.0]
[jira] [Updated] (CAMEL-21599) Global Error Handler does not take effect when a producer Kamelet fails
[ https://issues.apache.org/jira/browse/CAMEL-21599?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pasquale Congiusti updated CAMEL-21599: --- Description: I found a faulty behavior when configuring a global error handler and the failure is caused by the execution of a Kamelet. The following route works correctly: {code} - route: errorHandler: deadLetterChannel: deadLetterUri: kamelet:log-sink/errorHandler from: uri: timer:tick steps: - setBody: constant: "fail!" - setBody: simple: "${mandatoryBodyAs(Boolean)}" - log: "${body}" {code} It intercept the failing execution and forward the failure to the DLC. However, if the producer URI contains a failing Kamelet, then, the global error handler is not working. Wrapping the same failing logic in a local Kamelet like: {code} apiVersion: camel.apache.org/v1 kind: Kamelet metadata: name: my-err-source labels: camel.apache.org/kamelet.type: "source" spec: definition: title: "Timer Example" description: "Produces periodic events with a custom payload" required: - message properties: period: title: Period description: The time interval between two events type: integer default: 1000 message: title: Message description: The message to generate type: string types: out: mediaType: text/plain template: from: uri: timer:tick parameters: period: "{{period}}" steps: - setBody: constant: "{{message}}" - setBody: simple: "${mandatoryBodyAs(Boolean)}" - setHeader: name: "Content-Type" constant: "text/plain" - to: "kamelet:sink" {code} And executing a new route as: {code} - route: errorHandler: deadLetterChannel: deadLetterUri: kamelet:log-sink/errorHandler from: uri: "kamelet:my-err-source/source" parameters: message: "fail!" steps: - log: "${body}" {code} Will act as no error handler is set at all, logging a Warn: {code} $ camel run * 2025-01-07 15:36:45.452 INFO 611589 --- [ main] org.apache.camel.main.MainSupport: Apache Camel (JBang) 4.9.0 is starting ... 2025-01-07 15:36:47.543 WARN 611589 --- [ - timer://tick] ache.camel.component.timer.TimerConsumer : Error processing exchange. Exchange[FE1CC7B02A4822F-]. Caused by: [org.apache.camel.CamelExecutionException - Exception occurred during execution on the exchange: Exchange[FE1CC7B02A4822F-]] org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[FE1CC7B02A4822F-] at org.apache.camel.CamelExecutionException.wrapCamelExecutionException(CamelExecutionException.java:45) ~[camel-api-4.9.0.jar:4.9.0] at org.apache.camel.language.simple.SimpleExpressionBuilder$31.evaluate(SimpleExpressionBuilder.java:838) ~[camel-core-languages-4.9.0.jar:4.9.0] at org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:45) ~[camel-support-4.9.0.jar:4.9.0] at org.apache.camel.processor.SetBodyProcessor.process(SetBodyProcessor.java:45) ~[camel-core-processor-4.9.0.jar:4.9.0] at org.apache.camel.processor.errorhandler.NoErrorHandler.process(NoErrorHandler.java:46) ~[camel-core-processor-4.9.0.jar:4.9.0] at org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:347) ~[camel-base-engine-4.9.0.jar:4.9.0] at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:323) ~[camel-base-engine-4.9.0.jar:4.9.0] at org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:102) ~[camel-core-processor-4.9.0.jar:4.9.0] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199) [camel-base-engine-4.9.0.jar:4.9.0] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189) [camel-base-engine-4.9.0.jar:4.9.0] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166) [camel-base-engine-4.9.0.jar:4.9.0] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148) [camel-base-engine-4.9.0.jar:4.9.0] at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) [camel-base-engine-4.9.0.jar:4.9.0] at org.apache.camel.processor.Pipeline.process(Pipeline.java:163) [camel-core-processor-4.9.0.jar:4.9.0] at org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:347) [camel-base-e
[jira] [Resolved] (CAMEL-4616) register exception listener with camel-jms producer endpoint
[ https://issues.apache.org/jira/browse/CAMEL-4616?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen resolved CAMEL-4616. Resolution: Cannot Reproduce Thanks. We cannot reproduce this with ActiveMQ Artemis, and have no other reports of this kind of issue with classic ActiveMQ > register exception listener with camel-jms producer endpoint > > > Key: CAMEL-4616 > URL: https://issues.apache.org/jira/browse/CAMEL-4616 > Project: Camel > Issue Type: Improvement > Components: camel-jms >Affects Versions: 2.8.2 > Environment: camel-jms producer sending to ActiveMQ >Reporter: Torsten Mielke >Assignee: Yasser Zamani >Priority: Major > Labels: transactions > Fix For: Future > > > camel-jms should register an exception listener automatically when used as a > message producer. That way it can deal with any exception that may occur on > async sends. > To be more precise: > If a camel-jms producer sends a msg within a transaction to an ActiveMQ > broker, then this message send happens async by default (kind of an > optimization done by ActiveMQ). If anything goes wrong with the send (e.g. > broker raises a javax.jms.ResourceAllocationException because its full or > there is a transport problem) then we currently don't catch this exception as > there is no async exception listener registered. What's worse the TX will be > committed thereafter although the send has actually failed. > As a result the msg is lost. > For ActiveMQ there is a simple solution to this problem, either > - set jms.useAsyncSend=false on the broker URL, or > - call setAlwaysSyncSend(true) on the ActiveMQConnectionFactory > However many users won't be aware of this solution and will simply assume > that using a transaction is enough to guard against message loss. > Also the same problem can potentially arise with other JMS providers if they > also use async send within a transaction. > Camel should ensure that the out of the box behavior prevents from loosing > msgs in transactional sends. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (CAMEL-6108) Support XA Transactions in SJMS
[ https://issues.apache.org/jira/browse/CAMEL-6108?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen resolved CAMEL-6108. Resolution: Won't Do > Support XA Transactions in SJMS > --- > > Key: CAMEL-6108 > URL: https://issues.apache.org/jira/browse/CAMEL-6108 > Project: Camel > Issue Type: Sub-task > Components: camel-sjms >Reporter: Chris Geer >Priority: Major > Fix For: Future > > > We love contributions as you know. May you find time to work on it? -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (CAMEL-8249) camel-keycloak - A security component
[ https://issues.apache.org/jira/browse/CAMEL-8249?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17910607#comment-17910607 ] Claus Ibsen commented on CAMEL-8249: [~corneliouzbett] okay a component to manage keycloak is also interesting so you can use it to sync users as you talk about. > camel-keycloak - A security component > - > > Key: CAMEL-8249 > URL: https://issues.apache.org/jira/browse/CAMEL-8249 > Project: Camel > Issue Type: New Feature >Reporter: Claus Ibsen >Priority: Major > Fix For: Future > > > We should have a camel-keycloak component that integrates with keycloak > https://www.keycloak.org/ > For example similar to as camel-spring-security > http://camel.apache.org/security > https://camel.apache.org/components/next/others/spring-security.html -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (CAMEL-15729) Graphql integration does not allow for TLS using private CAs
[ https://issues.apache.org/jira/browse/CAMEL-15729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen updated CAMEL-15729: Fix Version/s: 4.x (was: Future) > Graphql integration does not allow for TLS using private CAs > > > Key: CAMEL-15729 > URL: https://issues.apache.org/jira/browse/CAMEL-15729 > Project: Camel > Issue Type: New Feature > Components: camel-graphql >Affects Versions: 3.6.0 > Environment: OCP 4.5 on X using Apache Camel Operator 1.2.0, but > other environments apply as well. >Reporter: Tim Kaczynski >Priority: Minor > Fix For: 4.x > > > This enhancement request was generated from a question on zulipchat: > [https://camel.zulipchat.com/#narrow/stream/257298-camel/topic/Adding.20a.20trustStore.20for.20graphql/near/213944005] > We are writing an integration that needs to produce messages to a graphql > server. The graphql server is using TLS and its certificate was generated by > an internal CA. There does not appear to be a way to provide a trust store > to the graphql producer, like there is for say the Kafka integrations. > Connections to graphql fail due to the inability to build a trusted > certificate chain. > Possible non-trivial solutions include assuming the graphql integration is > using the apache HTTP client, and setting up a new protocol that uses a > custom trust store. Also (using camel-k) using the JVM taint to alter the > JSSE configuration / java properties, adding a trust store containing the CA. > However both of these solutions require assumptions about the implementation > that may not always be true (and we have not tested them yet). Could also > use the HTTP[4] integration directly to talk to graphql but this requires > coding the REST request manually. > If there were a parameter on the graphql integration where we could input a > trust store, type, and password, that would be an ideal solution. Or perhaps > some other way of modifying the default trust store using camel-k (this would > benefit all integrations). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (CAMEL-15729) Graphql integration does not allow for TLS using private CAs
[ https://issues.apache.org/jira/browse/CAMEL-15729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17910632#comment-17910632 ] Claus Ibsen commented on CAMEL-15729: - Yeah it uses apache http client v5 and we would need to add support for setting up TLS/SSL with this client. You can create a custom client and configure it and use that with Camel until there is something easier out of the box. > Graphql integration does not allow for TLS using private CAs > > > Key: CAMEL-15729 > URL: https://issues.apache.org/jira/browse/CAMEL-15729 > Project: Camel > Issue Type: New Feature > Components: camel-graphql >Affects Versions: 3.6.0 > Environment: OCP 4.5 on X using Apache Camel Operator 1.2.0, but > other environments apply as well. >Reporter: Tim Kaczynski >Priority: Minor > Fix For: 4.x > > > This enhancement request was generated from a question on zulipchat: > [https://camel.zulipchat.com/#narrow/stream/257298-camel/topic/Adding.20a.20trustStore.20for.20graphql/near/213944005] > We are writing an integration that needs to produce messages to a graphql > server. The graphql server is using TLS and its certificate was generated by > an internal CA. There does not appear to be a way to provide a trust store > to the graphql producer, like there is for say the Kafka integrations. > Connections to graphql fail due to the inability to build a trusted > certificate chain. > Possible non-trivial solutions include assuming the graphql integration is > using the apache HTTP client, and setting up a new protocol that uses a > custom trust store. Also (using camel-k) using the JVM taint to alter the > JSSE configuration / java properties, adding a trust store containing the CA. > However both of these solutions require assumptions about the implementation > that may not always be true (and we have not tested them yet). Could also > use the HTTP[4] integration directly to talk to graphql but this requires > coding the REST request manually. > If there were a parameter on the graphql integration where we could input a > trust store, type, and password, that would be an ideal solution. Or perhaps > some other way of modifying the default trust store using camel-k (this would > benefit all integrations). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (CAMEL-15011) AWS2 components: support async mode
[ https://issues.apache.org/jira/browse/CAMEL-15011?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen resolved CAMEL-15011. - Resolution: Won't Fix > AWS2 components: support async mode > --- > > Key: CAMEL-15011 > URL: https://issues.apache.org/jira/browse/CAMEL-15011 > Project: Camel > Issue Type: New Feature >Reporter: Luca Burgazzoli >Priority: Minor > Fix For: Future > > > The AWS SDK v2 supports asynchronous mode [1] so it would be nice if our aws2 > component would support that model. We should also investigate if and how we > can share the event loop between camel and the aws2 sdk for an end2end > reactive story. > [1] > https://docs.aws.amazon.com/sdk-for-java/v2/developer-guide/basics-async.html -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (CAMEL-21598) Camel AWS Bedrock: Update supported models
Andrea Cosentino created CAMEL-21598: Summary: Camel AWS Bedrock: Update supported models Key: CAMEL-21598 URL: https://issues.apache.org/jira/browse/CAMEL-21598 Project: Camel Issue Type: Task Reporter: Andrea Cosentino Assignee: Andrea Cosentino Fix For: 4.10.0 Some have been removed, some got new versions. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (CAMEL-21597) Camel AWS Bedrock: Support Amazon Nova models
Andrea Cosentino created CAMEL-21597: Summary: Camel AWS Bedrock: Support Amazon Nova models Key: CAMEL-21597 URL: https://issues.apache.org/jira/browse/CAMEL-21597 Project: Camel Issue Type: New Feature Reporter: Andrea Cosentino Assignee: Andrea Cosentino Fix For: 4.10.0 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (CAMEL-21509) camel-kubernetes - Upgrade to v7 of fabric8-client
[ https://issues.apache.org/jira/browse/CAMEL-21509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17910571#comment-17910571 ] Claus Ibsen commented on CAMEL-21509: - Okay so lets get this into the next Camel release. Help is welcome as the upgrade likely requires code changes in camel also. > camel-kubernetes - Upgrade to v7 of fabric8-client > -- > > Key: CAMEL-21509 > URL: https://issues.apache.org/jira/browse/CAMEL-21509 > Project: Camel > Issue Type: Dependency upgrade > Components: camel-kubernetes >Reporter: Claus Ibsen >Priority: Major > Fix For: 4.10.0 > > > [https://blog.marcnuri.com/fabric8-kubernetes-client-7-0] > > The CEQ project may need to upgrade as well to make this work on Quarkus. > A -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (CAMEL-21509) camel-kubernetes - Upgrade to v7 of fabric8-client
[ https://issues.apache.org/jira/browse/CAMEL-21509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17910550#comment-17910550 ] James Netherton commented on CAMEL-21509: - FWIW Quarkus has upgraded for their next release (3.18): https://github.com/quarkusio/quarkus/pull/45259 > camel-kubernetes - Upgrade to v7 of fabric8-client > -- > > Key: CAMEL-21509 > URL: https://issues.apache.org/jira/browse/CAMEL-21509 > Project: Camel > Issue Type: Dependency upgrade > Components: camel-kubernetes >Reporter: Claus Ibsen >Priority: Major > Fix For: 4.10.0 > > > [https://blog.marcnuri.com/fabric8-kubernetes-client-7-0] > > The CEQ project may need to upgrade as well to make this work on Quarkus. > A -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (CAMEL-21505) camel-as2: Binary files get corrupt when using 'base64' content transfer encoding
[ https://issues.apache.org/jira/browse/CAMEL-21505?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen updated CAMEL-21505: Fix Version/s: 4.8.4 (was: 4.8.3) > camel-as2: Binary files get corrupt when using 'base64' content transfer > encoding > - > > Key: CAMEL-21505 > URL: https://issues.apache.org/jira/browse/CAMEL-21505 > Project: Camel > Issue Type: Bug > Components: camel-as2 >Affects Versions: 4.8.1 > Environment: Windows and Docker > Java 21 Temurin >Reporter: Meinolf S-D >Priority: Minor > Fix For: 4.8.4, 4.10.0 > > Attachments: image-2024-12-03-12-29-47-487.png > > > Binary files get corrupt when using *base64* content transfer encoding due to > String assignment of the decoded byte[] > This can easily be tested sending a .zip file to Camel AS2 listener. > After some investigation the issue seems to be in the EntityUtil.decode > method. > As shown in the screenshot the decoded (binary) byte[] is assigned to a new > String which result into corrupt date in case of binary content. > !image-2024-12-03-12-29-47-487.png! > In addition there are new line characters in the encoded base64 encoded > String data object. > In case of using transfer encoding type *binary* > java.nio.charset.MalformedInputException: Input length = 1 it thrown which > might be OK. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (CAMEL-21596) Camel Qdrant add Vector search
[ https://issues.apache.org/jira/browse/CAMEL-21596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen updated CAMEL-21596: Issue Type: Improvement (was: Bug) > Camel Qdrant add Vector search > -- > > Key: CAMEL-21596 > URL: https://issues.apache.org/jira/browse/CAMEL-21596 > Project: Camel > Issue Type: Improvement > Components: camel-qdrant > Environment: Add Vector search for Qdrant component >Reporter: Zineb Bendhiba >Assignee: Zineb Bendhiba >Priority: Major > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (CAMEL-21595) camel-langchain4j-tools: code may thrown an NPE if no tools are called
[ https://issues.apache.org/jira/browse/CAMEL-21595?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen resolved CAMEL-21595. - Resolution: Fixed > camel-langchain4j-tools: code may thrown an NPE if no tools are called > -- > > Key: CAMEL-21595 > URL: https://issues.apache.org/jira/browse/CAMEL-21595 > Project: Camel > Issue Type: Bug > Components: camel-langchain4j-tools >Affects Versions: 4.8.2, 4.9.0 >Reporter: Otavio Rodolfo Piske >Assignee: Otavio Rodolfo Piske >Priority: Major > Fix For: 4.8.3, 4.10.0 > > > Calls for tools: > > [https://github.com/apache/camel/blob/camel-4.8.2/components/camel-ai/camel-langchain4j-tools/src/main/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolsProducer.java#L102] > > Which may return null: > > [https://github.com/apache/camel/blob/camel-4.8.2/components/camel-ai/camel-langchain4j-tools/src/main/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolsProducer.java#L151-L154] > > And still be called: > [https://github.com/apache/camel/blob/camel-4.8.2/components/camel-ai/camel-langchain4j-tools/src/main/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolsProducer.java#L105] > > Which leads to dereferecing a null pointer: > > [https://github.com/apache/camel/blob/camel-4.8.2/components/camel-ai/camel-langchain4j-tools/src/main/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolsProducer.java#L110] > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (CAMEL-21504) camel-spring-boot - MicrometerTagsAutoConfiguration class puts http method in uri tag
[ https://issues.apache.org/jira/browse/CAMEL-21504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen resolved CAMEL-21504. - Resolution: Fixed Thanks for reporting > camel-spring-boot - MicrometerTagsAutoConfiguration class puts http method in > uri tag > - > > Key: CAMEL-21504 > URL: https://issues.apache.org/jira/browse/CAMEL-21504 > Project: Camel > Issue Type: Bug > Components: camel-spring-boot >Affects Versions: 4.4.4, 4.8.1 >Reporter: Nikola Dangubic >Assignee: Claus Ibsen >Priority: Minor > Fix For: 4.8.3, 4.10.0 > > > [MicrometerTagsAutoConfiguration|https://github.com/apache/camel-spring-boot/blob/cf415a2c4dc1e6f7b14412d641e4fefd42786081/components-starter/camel-micrometer-starter/src/main/java/org/apache/camel/component/micrometer/springboot/MicrometerTagsAutoConfiguration.java] > probably has copy/paste error where instead of uri it puts http method in > map for metrics > {code:java} > return KeyValue.of("uri", context.getCarrier().getMethod()); {code} > and output looks like > {code:java} > # TYPE http_server_requests_active_seconds summary > http_server_requests_active_seconds_count{application="test_metrics",exception="none",method="GET",outcome="SUCCESS",status="200",uri="GET"} > 0 > http_server_requests_active_seconds_sum{application="test_metrics",exception="none",method="GET",outcome="SUCCESS",status="200",uri="GET"} > 0.0 {code} > One would expect uri value for uri tag. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (CAMEL-21584) Camel 4.8.x build is failing on CI for camel-kotlin-api module
[ https://issues.apache.org/jira/browse/CAMEL-21584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen updated CAMEL-21584: Fix Version/s: 4.8.4 (was: 4.8.3) > Camel 4.8.x build is failing on CI for camel-kotlin-api module > -- > > Key: CAMEL-21584 > URL: https://issues.apache.org/jira/browse/CAMEL-21584 > Project: Camel > Issue Type: Task > Components: camel-kotlin >Reporter: Aurélien Pupier >Priority: Minor > Fix For: 4.8.4 > > > It is failing at least since the 19th December. The last "successful" > (without build error) in the CI history is the 23th September. Last release > is the [4.8.2 on 1st > December|https://github.com/apache/camel/releases/tag/camel-4.8.2] so I guess > it broke between the 1st and 19th December > {noformat} > [INFO] --- kotlin:1.9.24:compile (compile) @ camel-kotlin-api --- > [WARNING] Source root doesn't exist: > /home/jenkins/712657a4/workspace/_Core_Build_and_test_camel-4.8.x/dsl/camel-kotlin-api/src/main/java > [WARNING] Source root doesn't exist: > /home/jenkins/712657a4/workspace/_Core_Build_and_test_camel-4.8.x/dsl/camel-kotlin-api/src/generated/java > [WARNING] Using experimental Kotlin incremental compilation > script returned exit code 143 {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (CAMEL-21504) camel-spring-boot - MicrometerTagsAutoConfiguration class puts http method in uri tag
[ https://issues.apache.org/jira/browse/CAMEL-21504?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen reassigned CAMEL-21504: --- Assignee: Claus Ibsen > camel-spring-boot - MicrometerTagsAutoConfiguration class puts http method in > uri tag > - > > Key: CAMEL-21504 > URL: https://issues.apache.org/jira/browse/CAMEL-21504 > Project: Camel > Issue Type: Bug > Components: camel-spring-boot >Affects Versions: 4.4.4, 4.8.1 >Reporter: Nikola Dangubic >Assignee: Claus Ibsen >Priority: Minor > Fix For: 4.8.3, 4.10.0 > > > [MicrometerTagsAutoConfiguration|https://github.com/apache/camel-spring-boot/blob/cf415a2c4dc1e6f7b14412d641e4fefd42786081/components-starter/camel-micrometer-starter/src/main/java/org/apache/camel/component/micrometer/springboot/MicrometerTagsAutoConfiguration.java] > probably has copy/paste error where instead of uri it puts http method in > map for metrics > {code:java} > return KeyValue.of("uri", context.getCarrier().getMethod()); {code} > and output looks like > {code:java} > # TYPE http_server_requests_active_seconds summary > http_server_requests_active_seconds_count{application="test_metrics",exception="none",method="GET",outcome="SUCCESS",status="200",uri="GET"} > 0 > http_server_requests_active_seconds_sum{application="test_metrics",exception="none",method="GET",outcome="SUCCESS",status="200",uri="GET"} > 0.0 {code} > One would expect uri value for uri tag. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (CAMEL-12719) Ability to load an SSLContextParameter with a Keystore containing multiple keys (aliases)
[ https://issues.apache.org/jira/browse/CAMEL-12719?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Claus Ibsen resolved CAMEL-12719. - Resolution: Cannot Reproduce > Ability to load an SSLContextParameter with a Keystore containing multiple > keys (aliases) > - > > Key: CAMEL-12719 > URL: https://issues.apache.org/jira/browse/CAMEL-12719 > Project: Camel > Issue Type: Improvement > Components: camel-core >Affects Versions: 2.22.0 > Environment: Apache Tomcat 7, Camel 2.22.0, java 8, redHat 6.6 > 1 TrustStore.jks (12 certificats CA => 12 alias) > 1 Keystore.jsk (5 clés => 5 alias => 5 passwords différents) > > 200 camelRoutes (file, soap, rest) secure, non-secure >Reporter: Florian B. >Priority: Major > Fix For: Future > > > Hello, > I wish I could initialize a single SSLContextParameters at camel startup > containing my truststore.jks (> 1 alias) and my keystore.jks (> 1 alias) in > order to call it (refer to) in Routes (FTPs, HTTPs) without have to redefine > a new SSLContextParameter for each EndPoint. > __ > __ > _ _resource="${truststore.jks.file.location}" />_ > __ > __ > _ _resource="${keystore.jks.file.location}" />_ > __ > __ > When my Keystore contains more than 1 alias, I have the following error when > creating the Route at startup : > *Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to > resolve endpoint: > https4://:/?authPassword=RAW(password)&authUsername=login&authenticationPreemptive=true&bridgeEndpoint=true&sslContextParameters=sslContextParameters&throwExceptionOnFailure=true > due to: Cannot recover key* > due to > *Caused by: java.security.UnrecoverableKeyException: Cannot recover key* > > When my keystore contains only one key, it works very well. > __ > __ > _ _resource="${truststore.jks.file.location}" />_ > __ > __ > _ _resource="${keystore.jks.file.location}" />_ > __ > __ > > So I would like to be able to call my SSLContextParameter for different > EndPoint by specifying (if necessary) the alias of the Keystore needed (by > specifying the alias and / or password of the key) > > Objectif in my project : > * 1 TrustStore.jks > * 1 Keystore.jsk > * 1 unique SSLContextParameter > * > 200 camelRoutes FTPs/HTTPs (ssl one way ou two way) > > Thank a lot > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (CAMEL-21600) camel-ognl - Upgrade to 3.4.5
Claus Ibsen created CAMEL-21600: --- Summary: camel-ognl - Upgrade to 3.4.5 Key: CAMEL-21600 URL: https://issues.apache.org/jira/browse/CAMEL-21600 Project: Camel Issue Type: Dependency upgrade Components: camel-ognl Reporter: Claus Ibsen Fix For: 4.x There is maybe a bug in ognl or something we need to change in camel-ognl https://github.com/orphan-oss/ognl/issues/350 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (CAMEL-21600) camel-ognl - Upgrade to 3.4.5
[ https://issues.apache.org/jira/browse/CAMEL-21600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17910942#comment-17910942 ] Claus Ibsen commented on CAMEL-21600: - Workaround https://github.com/apache/camel/commit/6f7d1686f01c505a96d1a9a479e826245db7cd22 > camel-ognl - Upgrade to 3.4.5 > - > > Key: CAMEL-21600 > URL: https://issues.apache.org/jira/browse/CAMEL-21600 > Project: Camel > Issue Type: Dependency upgrade > Components: camel-ognl >Reporter: Claus Ibsen >Priority: Minor > Fix For: 4.x > > > There is maybe a bug in ognl or something we need to change in camel-ognl > https://github.com/orphan-oss/ognl/issues/350 -- This message was sent by Atlassian Jira (v8.20.10#820010)