title: SLF4J MDC: Data "bleeding" from child thread to parent thread
body: <p>I have a Spring MVC app that has logging set up using SLF4J. I am using two different aspects (using spring-aop) to do the logging, one to log all incoming http requests, and another to log asynchronous tasks. The asynchronous tasks are launched using an ExecutorService. </p>
  
  <p>My understanding was that when you use an ExecutorService, the spawned thread's MDC will <strong><em>not</em></strong> inherit values already set. But it seems it does. Fair enough. I just call org.slf4j.MDC.clear() in my child thread to reset the values.</p>
  
  <p>My problem is that values I am setting in the spawned child thread are <strong><em>also</em></strong> showing up in the original <strong><em>parent</em></strong> thread's MDC.</p>
  
  <p>Is this normal, or am I doing something wrong? Is there any way to prevent this?</p>