[Bug 223] New: Race-conditions initializing LoggerFactory

http://bugzilla.slf4j.org/show_bug.cgi?id=223 Summary: Race-conditions initializing LoggerFactory Product: SLF4J Version: 1.6.x Platform: PC OS/Version: Windows NT Status: NEW Severity: critical Priority: P1 Component: Core API AssignedTo: slf4j-dev@qos.ch ReportedBy: cowwoc@bbs.darktech.org 1. Given: public class MyTest { private final Logger log = LoggerFactory.getLogger(MyTest.class); @Test public void firstMethod() {...} @Test public void secondMethod() {...} //etc } 2. Run the unit test through Surefire 2.8.1 or newer (I am using 2.8.2-SNAPSHOT) with <parallel>methods</parallel> and JUnit 4.8.2 3. slf4j will issue the following warning: SLF4J: The following loggers will not work because they were created SLF4J: during the default configuration phase of the underlying logging system. SLF4J: See also http://www.slf4j.org/codes.html#substituteLogger 4. MyTest is instantiated multiple times simultaneously, each time invoking LoggerFactory.getLogger(). 5. The first call begins invoking performInitialization(). The subsequent calls return TEMP_FACTORY. As a result, the unit tests run with a misconfigured logger. Expected behavior: The first thread should run performInitialization() while subsequent threads block waiting for initialization to complete. I believe you can do this (and still allow re-entrant behavior) by using a "synchronized (LoggerFactory.class)" block. Workaround: Insert the following method once per class file: @BeforeClass public static void initSlf4j() { // Configure slf4j in a thread-safe manner, otherwise we get: // // SLF4J: The following loggers will not work because they were created // SLF4J: during the default configuration phase of the underlying logging system. // SLF4J: See also http://www.slf4j.org/codes.html#substituteLogger LoggerFactory.getILoggerFactory(); } Though I don't think this workaround will work for <parallel>class</parallel> or <parallel>both</parallel>. -- Configure bugmail: http://bugzilla.slf4j.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.

http://bugzilla.slf4j.org/show_bug.cgi?id=223 Gili <cowwoc@bbs.darktech.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE --- Comment #1 from Gili <cowwoc@bbs.darktech.org> 2011-06-19 05:34:01 CEST --- *** This bug has been marked as a duplicate of bug 176 *** -- Configure bugmail: http://bugzilla.slf4j.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.
participants (1)
-
bugzilla-daemon@pixie.qos.ch