You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2024/03/23 12:32:24 UTC
(camel) 04/05: CAMEL-20607: camel-core - Using variableReceive should only set result if exchange was process succesfully
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 <cl...@gmail.com>
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);