These methods throwing Exception makes better exception handling more difficult.  Can we narrow the scope to just Interrupted and Timeout exceptions?