Зачем вызывать метод Thread.currentThread.interrupt() в блоке catch?
Thread.currentThread.interrupt()