Details
-
Bug
-
Resolution: Fixed
-
Major
-
0.9.28
-
None
-
JDK 1.6.0_21
Description
I want to upgrade logback to 0.9.28 but one of my unit tests caught this bug in the LogbackMDCAdapter. Basically, if a child thread clears the MDC, the parent thread's copy is cleared as well. This simple unit test illustrates the problem.
import org.junit.Test;
import org.slf4j.MDC;
/**
- Demonstrates a bug in LogbackMDCAdapter. The clear() executed by the child thread should not affect the parent.
*/
public class MDCTest {
@Test
public void testBug() throws InterruptedException {
MDC.put("foo", "bar");
assertEquals("bar", MDC.get("foo"));
Thread clearer = new Thread() {
@Override
public void run()
};
clearer.start();
clearer.join();
//Fails
assertEquals("bar", MDC.get("foo"));
}
}