This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan 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.