code: protected void closeContentChannel() {
      if (contentChannel != null) {
        logger.atFine().log("Closing internal contentChannel for '%s'", resourceIdString);
        try {
          contentChannel.close();
        } catch (Exception e) {
          logger.atFine().withCause(e).log(
              "Got an exception on contentChannel.close() for '%s'; ignoring it.", resourceIdString);
        } finally {
          contentChannel = null;
          resetContentChannel();
        }
      }
    }
docs: Closes the underlying {@link ReadableByteChannel}.
  
  <p>Catches and ignores all exceptions as there is not a lot the user can do to fix errors here
  and a new connection will be needed. Especially SSLExceptions since the there's a high
  probability that SSL connections would be broken in a way that causes {@link
  java.nio.channels.Channel#close()} itself to throw an exception, even though underlying sockets
  have already been cleaned up; close() on an SSLSocketImpl requires a shutdown handshake in
  order to shutdown cleanly, and if the connection has been broken already, then this is not
  possible, and the SSLSocketImpl was already responsible for performing local cleanup at the
  time the exception was raised.