you can just
```
} catch (InterruptedException e) {
  throw new IOException(e);
}
```
Throwing an exception is the right answer here but there's no point setting the thread interrupt flag.
See: http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html
"Thrown when a thread is waiting, sleeping, or otherwise occupied, and the thread is interrupted, either before or during the activity. Occasionally a method may wish to test whether the current thread has been interrupted, and if so, to immediately throw this exception. The following code can be used to achieve this effect:
  if (Thread.interrupted())  // Clears interrupted status!
      throw new InterruptedException();
"