Could you explain what java.lang.Thread.interrupt() does when invoked?
java.lang.Thread.interrupt()
Thread.interrupt() method sets internal 'interrupt status' flag. Usually that flag is checked by Thread.interrupted() method.
By convention, any method that exists via InterruptedException have to clear interrupt status flag.