need to always call Thread.currentThread.interrupt() when catching InterruptedException even if otherwise swallowing