Skip to content

Commit 8c376e0

Browse files
committed
CAMEL-22717: camel-mdc - MDC is lost when using interceptSendToEndpoint (and potentially other situations)
1 parent ffa6583 commit 8c376e0

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

components/camel-mdc/src/main/java/org/apache/camel/mdc/MDCEventNotifier.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,31 @@ class MDCEventNotifier extends SimpleEventNotifierSupport {
2424
private final MDCService mdc;
2525

2626
public MDCEventNotifier(MDCService mdc) {
27-
// ignore these
27+
this.mdc = mdc;
28+
}
29+
30+
@Override
31+
protected void setupIgnore(boolean ignore) {
2832
setIgnoreCamelContextEvents(true);
2933
setIgnoreCamelContextInitEvents(true);
3034
setIgnoreRouteEvents(true);
3135
setIgnoreServiceEvents(true);
3236
setIgnoreStepEvents(true);
3337
// we need also async processing started events
3438
setIgnoreExchangeAsyncProcessingStartedEvents(false);
35-
this.mdc = mdc;
3639
}
3740

3841
@Override
3942
public void notify(CamelEvent event) throws Exception {
4043
if (event instanceof CamelEvent.ExchangeAsyncProcessingStartedEvent eap) {
4144
// exchange is continued processed on another thread so unset MDC
4245
mdc.unsetMDC(eap.getExchange());
46+
} else if (event instanceof CamelEvent.ExchangeCompletedEvent ec) {
47+
// exchange is completed so unset MDC
48+
mdc.unsetMDC(ec.getExchange());
49+
} else if (event instanceof CamelEvent.ExchangeFailedEvent ef) {
50+
// exchange is failed so unset MDC
51+
mdc.unsetMDC(ef.getExchange());
4352
}
4453
}
4554
}

components/camel-mdc/src/test/resources/log4j2.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@ appender.file.layout.type = PatternLayout
2727
appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m [%X{camel.threadId}, %X{camel.contextId}, %X{camel.routeId}, %X{camel.exchangeId}, %X{camel.messageId}, %X{head1}, %X{prop1}, %X{head2}, %X{prop2}]%n
2828

2929
rootLogger.level = INFO
30-
rootLogger.appenderRef.file.ref = console
30+
rootLogger.appenderRef.file.ref = file

0 commit comments

Comments
 (0)