Author: olegk
Date: Tue Sep 13 13:34:16 2005
New Revision: 280648

URL: http://svn.apache.org/viewcvs?rev=280648&view=rev
Log:
PR #36369 (Can not set the "Proxy-connection" header)

Contributed by Oleg Kalnichevski
Reviewed by Ortwin Glück

Modified:
    
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpMethodBase.java
    
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestConnectionPersistence.java

Modified: 
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpMethodBase.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpMethodBase.java?rev=280648&r1=280647&r2=280648&view=diff
==============================================================================
--- 
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpMethodBase.java
 (original)
+++ 
jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpMethodBase.java
 Tue Sep 13 13:34:16 2005
@@ -1262,7 +1262,9 @@
         LOG.trace("enter HttpMethodBase.addProxyConnectionHeader("
                   + "HttpState, HttpConnection)");
         if (!conn.isTransparent()) {
-            setRequestHeader("Proxy-Connection", "Keep-Alive");
+               if (getRequestHeader("Proxy-Connection") == null) {
+                addRequestHeader("Proxy-Connection", "Keep-Alive");
+               }
         }
     }
 

Modified: 
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestConnectionPersistence.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestConnectionPersistence.java?rev=280648&r1=280647&r2=280648&view=diff
==============================================================================
--- 
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestConnectionPersistence.java
 (original)
+++ 
jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/TestConnectionPersistence.java
 Tue Sep 13 13:34:16 2005
@@ -29,10 +29,12 @@
 
 import java.io.IOException;
 
+import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.commons.httpclient.methods.PostMethod;
 import org.apache.commons.httpclient.methods.StringRequestEntity;
 import org.apache.commons.httpclient.server.HttpRequestHandler;
 import org.apache.commons.httpclient.server.SimpleHttpServerConnection;
+import org.apache.commons.httpclient.server.SimpleProxy;
 import org.apache.commons.httpclient.server.SimpleRequest;
 import org.apache.commons.httpclient.server.SimpleResponse;
 
@@ -215,5 +217,36 @@
         assertFalse(connman.getConection().isOpen());
     }
 
+    public void testProxyConnClose() throws Exception {
+        this.server.setHttpService(new EchoService());
+        this.proxy = new SimpleProxy();
+        this.client.getHostConfiguration().setProxy(
+            proxy.getLocalAddress(), 
+            proxy.getLocalPort());                
+
+        AccessibleHttpConnectionManager connman = new 
AccessibleHttpConnectionManager();
+        
+        this.client.setHttpConnectionManager(connman);
+        
+        GetMethod httpget = new GetMethod("/test/");
+        try {
+            this.client.executeMethod(httpget);
+        } finally {
+               httpget.releaseConnection();
+        }
+        assertTrue(connman.getConection().isOpen());
+
+        httpget = new GetMethod("/test/");
+        httpget.setRequestHeader("Proxy-Connection", "Close");
+        try {
+            this.client.executeMethod(httpget);
+        } finally {
+               httpget.releaseConnection();
+        }
+        assertFalse(connman.getConection().isOpen());
+        assertEquals("Close", 
httpget.getRequestHeader("Proxy-Connection").getValue());
+    }
+
+    
 }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to