This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch var-fail in repository https://gitbox.apache.org/repos/asf/camel.git
commit b54b3ba73feb4d4cff183dcd4ed048788e7116d5 Author: Claus Ibsen <[email protected]> AuthorDate: Sat Mar 23 10:26:55 2024 +0100 CAMEL-20607: camel-core - Using variableReceive should only set result if exchange was process succesfully --- .../org/apache/camel/processor/SendDynamicProcessor.java | 8 ++++---- .../main/java/org/apache/camel/processor/SendProcessor.java | 12 +++++------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java index 94c41c1b107..decf336be57 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendDynamicProcessor.java @@ -237,10 +237,10 @@ public class SendDynamicProcessor extends AsyncProcessorSupport implements IdAwa ServiceHelper.stopAndShutdownService(endpoint); } // result should be stored in variable instead of message body - if (ExchangeHelper.shouldSetVariableResult(exchange, variableReceive)) { - ExchangeHelper.setVariableFromMessageBodyAndHeaders(exchange, variableReceive, exchange.getMessage()); - exchange.getMessage().setBody(originalBody); - exchange.getMessage().setHeaders(originalHeaders); + if (ExchangeHelper.shouldSetVariableResult(target, variableReceive)) { + ExchangeHelper.setVariableFromMessageBodyAndHeaders(target, variableReceive, target.getMessage()); + target.getMessage().setBody(originalBody); + target.getMessage().setHeaders(originalHeaders); } // signal we are done c.done(doneSync); diff --git a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java index 0f0bde0a265..37dd575fccd 100644 --- a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java +++ b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SendProcessor.java @@ -179,11 +179,11 @@ public class SendProcessor extends AsyncProcessorSupport implements Traceable, E ac = doneSync -> { try { // result should be stored in variable instead of message body/headers - if (ExchangeHelper.shouldSetVariableResult(exchange, variableReceive)) { - ExchangeHelper.setVariableFromMessageBodyAndHeaders(exchange, variableReceive, - exchange.getMessage()); - exchange.getMessage().setBody(originalBody); - exchange.getMessage().setHeaders(originalHeaders); + if (ExchangeHelper.shouldSetVariableResult(target, variableReceive)) { + ExchangeHelper.setVariableFromMessageBodyAndHeaders(target, variableReceive, + target.getMessage()); + target.getMessage().setBody(originalBody); + target.getMessage().setHeaders(originalHeaders); } // restore previous MEP target.setPattern(existingPattern); @@ -202,8 +202,6 @@ public class SendProcessor extends AsyncProcessorSupport implements Traceable, E if (variableSend != null) { Object value = ExchangeHelper.getVariable(exchange, variableSend); exchange.getMessage().setBody(value); - // TODO: empty headers or - } LOG.debug(">>>> {} {}", destination, exchange);
