static <T> Consumer<T> unchecked(final InterruptibleConsumer<T> consumer,
                                     final Supplier<String> debugMsgSupplier) {
        return (t) -> {
            try {
                consumer.accept(t);
            } catch (InterruptedException e) {
                LOGGER.debug(() ->
                                NullSafe.getOrElse(
                                        debugMsgSupplier,
                                        Supplier::get,
                                        "Interrupted"),
                        e);
                Thread.currentThread().interrupt();
                throw new UncheckedInterruptedException("Interrupted: " + e.getMessage(), e);
            }
        };
    }
Wraps a consumer that throws an {@link InterruptedException} with a catch block that
will reset the interrupt flag and wrap the exception with a {@link UncheckedInterruptedException},
thus making it unchecked and usable in a lambda.
stroom-util/src/main/java/stroom/util/exception/InterruptibleConsumer.java