This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
It is actually an optional implementation that the implementers need to thrown InterruptedIOException when a time out occurs.
Since it is defined in the Spec, the choice a would be the most suitable one to select. But we can't be sure that "an InterruptedIOException will be thrown to the application upon connection transfer from the AMS to the application.". It depends on the implementer's choice.