};
queue.getPutListenerContainer().addListener(listener);
Assert.assertTrue(queue.put("1", timing.milliseconds(), TimeUnit.MILLISECONDS)); // should end up in consumer
Assert.assertTrue(queue.put("2", timing.milliseconds(), TimeUnit.MILLISECONDS)); // should sit blocking in DistributedQueue
Assert.assertTrue(timing.awaitLatch(latch));
timing.sleepABit();
Assert.assertFalse(queue.put("3", timing.multiple(.5).milliseconds(), TimeUnit.MILLISECONDS));
semaphore.release(100);
Assert.assertTrue(queue.put("3", timing.milliseconds(), TimeUnit.MILLISECONDS));