InputStream.available() will currently throw a generic IOException irrespective of there being bytes available to read from the input buffer