code: static boolean containsInterruptedException(Throwable thrown) {
      if (thrown == null) {
        return false;
      }
      if (thrown instanceof InterruptedException || thrown instanceof InterruptedIOException) {
        return true;
      }
      // tail recurse
      return containsInterruptedException(thrown.getCause());
    }
docs: Recurse down the exception loop looking for any inner details about an
  interrupted exception.
  
  @param thrown exception thrown
  @return true if down the execution chain the operation was an interrupt