原因は以下。
- ScheduledExecutorServiceを使ってポーリングしてて、ポーリングを一度止める場合にScheduledExecutorService#shutdownNowを実行していた。
- shutdownNowを実行するとThread.interrupted()がtrueになる
- HttpClientのコードの中にループをぐるぐる回してHTTPレスポンスを待つコードがあるがそのループの中にThread.interrupted()がtrueの場合InterruptedIOExceptionを投げる処理がある
HTTPリクエストをキャンセルし、いらなくなったスレッドからInterruptedIOExceptionが出ているだけなのでこれは無視してOK。