Index: src/test/org/apache/commons/httpclient/TestProxy.java =================================================================== --- src/test/org/apache/commons/httpclient/TestProxy.java (revision 169255) +++ src/test/org/apache/commons/httpclient/TestProxy.java (working copy) @@ -771,5 +771,34 @@ get.releaseConnection(); } } + + /** + * Tests GET via authenticating proxy + host auth + HTTP/1.0 + */ + public void testGetProxyAuthHostAuthHTTP10() throws Exception { + + UsernamePasswordCredentials creds = + new UsernamePasswordCredentials("testuser", "testpass"); + this.client.getState().setCredentials(AuthScope.ANY, creds); + this.client.getState().setProxyCredentials(AuthScope.ANY, creds); + this.client.getParams().setVersion(HttpVersion.HTTP_1_0); + + HttpRequestHandlerChain handlerchain = new HttpRequestHandlerChain(); + handlerchain.appendHandler(new AuthRequestHandler(creds, "test", true)); + handlerchain.appendHandler(new HttpServiceHandler(new FeedbackService())); + + this.server.setRequestHandler(handlerchain); + + this.proxy.requireAuthentication(creds, "test", false); + + GetMethod get = new GetMethod("/"); + try { + this.client.executeMethod(get); + assertEquals(HttpStatus.SC_OK, get.getStatusCode()); + } finally { + get.releaseConnection(); + } + } + } Index: src/java/org/apache/commons/httpclient/HttpMethodDirector.java =================================================================== --- src/java/org/apache/commons/httpclient/HttpMethodDirector.java (revision 169255) +++ src/java/org/apache/commons/httpclient/HttpMethodDirector.java (working copy) @@ -473,6 +473,9 @@ int code; for (;;) { + if (!this.conn.isOpen()) { + this.conn.open(); + } try { authenticateProxy(this.connectMethod); } catch (AuthenticationException e) {