Skip to content

Commit

Permalink
make MultithreadedInitializationTest more robust
Browse files Browse the repository at this point in the history
  • Loading branch information
ceki committed Feb 26, 2016
1 parent 94f5139 commit 4b43a80
Showing 1 changed file with 14 additions and 19 deletions.
Expand Up @@ -33,7 +33,6 @@
import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.atomic.AtomicLong;
import java.util.logging.Handler;
import java.util.logging.LogManager;
import java.util.logging.LogRecord;

import org.junit.After;
Expand All @@ -51,28 +50,25 @@ public class MultithreadedInitializationTest {
final CyclicBarrier barrier = new CyclicBarrier(THREAD_COUNT + 1);

int diff = new Random().nextInt(10000);
String loggerName = "org.slf4j.impl.MultithreadedInitializationTest";
String packagePrefix = "org.slf4j.impl.MultithreadedInitializationTest" + diff;

private static java.util.logging.Logger getRootLogger() {
return LogManager.getLogManager().getLogger("");
java.util.logging.Logger julLogger = java.util.logging.Logger.getLogger(packagePrefix);

@Before
public void addRecordingHandler() {
julLogger.addHandler(new RecordingHandler());
}

@After
public void tearDown() throws Exception {
java.util.logging.Logger rootLogger = getRootLogger();
Handler[] handlers = rootLogger.getHandlers();
Handler[] handlers = julLogger.getHandlers();
for (int i = 0; i < handlers.length; i++) {
if (handlers[i] instanceof RecordingHandler) {
rootLogger.removeHandler(handlers[i]);
julLogger.removeHandler(handlers[i]);
}
}
}

@Before
public void addRecordingHandler() {
getRootLogger().addHandler(new RecordingHandler());
}

@Test
public void multiThreadedInitialization() throws InterruptedException, BrokenBarrierException {
System.out.println("THREAD_COUNT=" + THREAD_COUNT);
Expand All @@ -83,7 +79,7 @@ public void multiThreadedInitialization() throws InterruptedException, BrokenBar
accessor.logger.info("post harness");
}

Logger logger = LoggerFactory.getLogger(loggerName + ".slowInitialization-" + diff);
Logger logger = LoggerFactory.getLogger(packagePrefix + ".test");
logger.info("hello");
EVENT_COUNT.getAndIncrement();

Expand All @@ -99,17 +95,16 @@ private List<LogRecord> getRecordedEvents() {
return ra.records;
}

RecordingHandler findRecordingHandler() {
java.util.logging.Logger root = LogManager.getLogManager().getLogger("");
Handler[] handlers = root.getHandlers();
private RecordingHandler findRecordingHandler() {
Handler[] handlers = julLogger.getHandlers();
for (Handler h : handlers) {
if (h instanceof RecordingHandler)
return (RecordingHandler) h;
}
return null;
}

private static LoggerAccessingThread[] harness() throws InterruptedException, BrokenBarrierException {
private LoggerAccessingThread[] harness() throws InterruptedException, BrokenBarrierException {
LoggerAccessingThread[] threads = new LoggerAccessingThread[THREAD_COUNT];
final CyclicBarrier barrier = new CyclicBarrier(THREAD_COUNT + 1);
for (int i = 0; i < THREAD_COUNT; i++) {
Expand All @@ -124,7 +119,7 @@ private static LoggerAccessingThread[] harness() throws InterruptedException, Br
return threads;
}

static class LoggerAccessingThread extends Thread {
class LoggerAccessingThread extends Thread {
final CyclicBarrier barrier;
Logger logger;
int count;
Expand All @@ -140,7 +135,7 @@ public void run() {
} catch (Exception e) {
e.printStackTrace();
}
logger = LoggerFactory.getLogger(this.getClass().getName() + "-" + count);
logger = LoggerFactory.getLogger(packagePrefix + ".LoggerAccessingThread" + count);
logger.info("in run method");
EVENT_COUNT.getAndIncrement();
}
Expand Down

0 comments on commit 4b43a80

Please sign in to comment.