This is an automated email from the ASF dual-hosted git repository. ffang pushed a commit to branch camel-4.8.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit 4ef41d8a1136c2cd961fed5e246c2a97ee4804f5 Author: Freeman Fang <freeman.f...@gmail.com> AuthorDate: Tue Oct 22 12:25:41 2024 -0400 [CAMEL-21302]only set ExchangePropertyKey.CLOSE_CLIENT_SCOPE property when tracing is enabled and remove it after endScope (cherry picked from commit a242355cf28ab944b71583ea4d1a67db7a0a50ba) --- .../main/java/org/apache/camel/component/direct/DirectProducer.java | 4 +++- .../src/main/java/org/apache/camel/tracing/ActiveSpanManager.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/components/camel-direct/src/main/java/org/apache/camel/component/direct/DirectProducer.java b/components/camel-direct/src/main/java/org/apache/camel/component/direct/DirectProducer.java index 221cb70ef1e..c1ff8d6a706 100644 --- a/components/camel-direct/src/main/java/org/apache/camel/component/direct/DirectProducer.java +++ b/components/camel-direct/src/main/java/org/apache/camel/component/direct/DirectProducer.java @@ -96,7 +96,9 @@ public class DirectProducer extends DefaultAsyncProducer { } else { //Ensure we can close the CLIENT Scope created by this DirectProducer //in the same thread - exchange.setProperty(ExchangePropertyKey.CLOSE_CLIENT_SCOPE, Boolean.TRUE); + if (exchange.getProperty(ExchangePropertyKey.ACTIVE_SPAN) != null) { + exchange.setProperty(ExchangePropertyKey.CLOSE_CLIENT_SCOPE, Boolean.TRUE); + } return consumer.getAsyncProcessor().process(exchange, callback); } } diff --git a/components/camel-tracing/src/main/java/org/apache/camel/tracing/ActiveSpanManager.java b/components/camel-tracing/src/main/java/org/apache/camel/tracing/ActiveSpanManager.java index db4ac8b73d6..db2ba8a59ae 100644 --- a/components/camel-tracing/src/main/java/org/apache/camel/tracing/ActiveSpanManager.java +++ b/components/camel-tracing/src/main/java/org/apache/camel/tracing/ActiveSpanManager.java @@ -61,7 +61,7 @@ public final class ActiveSpanManager { //DirectProducer in async mode before we create a new INTERNAL scope //for the next DirectConsumer endScope(exchange); - exchange.setProperty(ExchangePropertyKey.CLOSE_CLIENT_SCOPE, Boolean.FALSE); + exchange.removeProperty(ExchangePropertyKey.CLOSE_CLIENT_SCOPE); } exchange.setProperty(ExchangePropertyKey.ACTIVE_SPAN, new Holder(exchange.getProperty(ExchangePropertyKey.ACTIVE_SPAN, Holder.class), span));