This week's book giveaway is in the OCMJEA forum. We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line! See this thread for details.
Here interrupt() method is called on object a which is not a thread of execution.(its just an instance of subclass of Thread) And a separate thread is started using t.start(). Thats the reason for the answer!
And see the API documentation of interrupt() method!
It will throw InterruptedException only if the thread is currently blocked(either sleeping,waiting or blocked for object locks). Otherwise it will just set the interrupted flag and run as it is.