[
https://issues.apache.org/jira/browse/CAMEL-22717?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18040570#comment-18040570
]
Pasquale Congiusti commented on CAMEL-22717:
--------------------------------------------
I made some further analysis on this problem and it seems that is a design
limitation of how the "intercept" works. When we intercept a route, we execute
this process without considering any configured InterceptStrategy. In the MDC
case, each process is wrapped by the MDCIntercept strategy which is in charge
to create the MDC context, execute the proecss and clear the MDC context (for
multi thread consistency reasons). This is not happening for the intercepted
routes, which are executed without the expected wrap.
[~davsclaus] any idea how we can tell the intercept send execution to wrap
those processes as well? It seems to me this is not possible right now, at
least, looking at the source code. I thought that any process was automatically
wrapped, regardless where it was coming from.
> MDC values get lost at interceptedSendTo Endpoint
> -------------------------------------------------
>
> Key: CAMEL-22717
> URL: https://issues.apache.org/jira/browse/CAMEL-22717
> Project: Camel
> Issue Type: Bug
> Components: came-core
> Affects Versions: 4.10.6, 4.14.2, 4.15.0
> Reporter: Daniel Fritsch
> Assignee: Pasquale Congiusti
> Priority: Minor
> Fix For: 4.17.0
>
> Attachments: demo-intercept-and-mdc.zip, screenshot-1.png
>
>
> when a endpoint logs and on this endpoint is a interceptSendTo active, then
> at the execution of the endpoints processor [can be any endpoint type
> (bean/cxfrs/...)] right after the interceptSendTo route the default MDC
> values (like camel.breadcrumbId) are not present. After the endpoint they are
> present again.
> note: This bug happens not when the route is transacted.
>
> see: Screenshot of the log
> !screenshot-1.png|width=537,height=449!
> see: demo project (i use a local activemq cause i tested it also with
> transacted)
> [^demo-intercept-and-mdc.zip]
>
> instead of the from("cMQConnectionFactory1:queue:test") line without
> transaction, it can be used this line also:
> {code:java}
> from("timer:mytimer?repeatCount=1") {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)