Hmmm - I can see what you are trying to verify (concurrency), but these timers (2 and 1 second) are a little to tight for my comfort - especially on a busy CI build server.

How about passing in two AtomicIntegers as variables and

    var1.incrementAndGet(); Thread.sleep(100); var2.set(Math.max(var1.get(), var2.get()); var1.decrementAndGet()
    ...
    assertTrue(var2.get() > 1)