@Override public void close() throws IOException { try { super.close(); if (log.isDebugEnabled()) { log.debug("Connection " + this + " closed"); } } catch (final IOException ex) { log.debug("I/O error closing connection", ex); } }
@Override public void sendRequestHeader(final HttpRequest request) throws HttpException, IOException { if (log.isDebugEnabled()) { log.debug("Sending request: " + request.getRequestLine()); } super.sendRequestHeader(request); if (headerLog.isDebugEnabled()) { headerLog.debug(">> " + request.getRequestLine().toString()); final Header[] headers = request.getAllHeaders(); for (final Header header : headers) { headerLog.debug(">> " + header.toString()); } } }
/** * Force-closes this connection. If the connection is still in the process of being open (the * method {@link #opening opening} was already called but {@link #openCompleted openCompleted} was * not), the associated socket that is being connected to a remote address will be closed. That * will interrupt a thread that is blocked on connecting the socket. If the connection is not yet * open, this will prevent the connection from being opened. * * @throws IOException in case of a problem */ @Override public void shutdown() throws IOException { shutdown = true; try { super.shutdown(); if (log.isDebugEnabled()) { log.debug("Connection " + this + " shut down"); } final Socket sock = this.socket; // copy volatile attribute if (sock != null) { sock.close(); } } catch (final IOException ex) { log.debug("I/O error shutting down connection", ex); } }