### Question:
AsyncUtil { public static boolean awaitLatchAndIgnoreInterrupt(CountDownLatch theInitialCollectionLatch, long theTime, TimeUnit theTimeUnit) { try { return theInitialCollectionLatch.await(theTime, theTimeUnit); } catch (InterruptedException e) { Thread.currentThread().interrupt(); ourLog.warn("Interrupted while waiting for latch"); return false; } } private  AsyncUtil(); static boolean sleep(long theMillis); static boolean awaitLatchAndThrowInternalErrorExceptionOnInterrupt(CountDownLatch theInitialCollectionLatch, long theTime, TimeUnit theTimeUnit); static boolean awaitLatchAndIgnoreInterrupt(CountDownLatch theInitialCollectionLatch, long theTime, TimeUnit theTimeUnit);  }### Answer:
@Test public void testAwaitLatchIgnoreInterruption() { AtomicBoolean outcomeHolder = new AtomicBoolean(true); CountDownLatch latch = new CountDownLatch(1); Thread thread = new Thread(() -> { boolean outcome = AsyncUtil.awaitLatchAndIgnoreInterrupt(latch, 10, TimeUnit.SECONDS); outcomeHolder.set(outcome); }); thread.start(); thread.interrupt(); await().until(()-> outcomeHolder.get() == false); }