Index: java/org/apache/commons/httpclient/ConnectMethod.java =================================================================== RCS file: /home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/ConnectMethod.java,v retrieving revision 1.15 diff -u -r1.15 ConnectMethod.java --- java/org/apache/commons/httpclient/ConnectMethod.java 22 May 2003 18:26:33 -0000 1.15 +++ java/org/apache/commons/httpclient/ConnectMethod.java 25 May 2003 14:13:28 -0000 @@ -1,5 +1,5 @@ /* - * $Header: /home/cvspublic/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/ConnectMethod.java,v 1.15 2003/05/22 18:26:33 olegk Exp $ + * $Header: /home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/ConnectMethod.java,v 1.15 2003/05/22 18:26:33 olegk Exp $ * $Revision: 1.15 $ * $Date: 2003/05/22 18:26:33 $ * @@ -277,7 +277,26 @@ * @return true if the connection should be closed */ protected boolean shouldCloseConnection(HttpConnection conn) { - return (getStatusCode() != HttpStatus.SC_OK); + if (getStatusCode() != HttpStatus.SC_OK) { + return true; + } else { + Header connectionHeader = null; + if (!conn.isTransparent()) { + connectionHeader = getResponseHeader("proxy-connection"); + } + if (connectionHeader == null) { + connectionHeader = getResponseHeader("connection"); + } + if (connectionHeader != null) { + if (connectionHeader.getValue().equalsIgnoreCase("close")) { + if (LOG.isWarnEnabled()) { + LOG.warn("Invalid header encountered '" + connectionHeader.toExternalForm() + + "' in response " + getStatusLine().toString()); + } + } + } + return false; + } } /** Log object for this class. */