The rest of the PR looks fine to me, except for this part. So this interceptor, first clears off any associated MDC for the invocation and later on associates the "correct" MDC/NDC (if any) for the context. It also clears any MDC/NDC it associated with the invocation, before returning. But, I don't see that we are restoring the MDC that we removed in these lines here. Is that intentional? Would that not lead to MDC data loss that might have been set by some other piece of code?