[ 
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)

Reply via email to