You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2007/12/15 15:35:21 UTC

svn commit: r604433 - in /jakarta/httpcomponents/httpclient/trunk: ./ module-client/src/examples/org/apache/http/examples/client/ module-client/src/main/java/org/apache/http/client/protocol/ module-client/src/main/java/org/apache/http/impl/client/

Author: olegk
Date: Sat Dec 15 06:35:20 2007
New Revision: 604433

URL: http://svn.apache.org/viewvc?rev=604433&view=rev
Log:
HTTPCLIENT-711: Bad route computed for redirected requests

Modified:
    jakarta/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
    jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientProxyAuthentication.java
    jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/client/protocol/RequestAddCookies.java
    jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultClientRequestDirector.java
    jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java

Modified: jakarta/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=604433&r1=604432&r2=604433&view=diff
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ jakarta/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Sat Dec 15 06:35:20 2007
@@ -1,6 +1,9 @@
 Changes since 4.0 Alpha 2
 -------------------
 
+* [HTTPCLIENT-711] Bad route computed for redirected requests
+  Contributed by Oleg Kalnichevski <olegk at apache.org>
+
 * [HTTPCLIENT-705] Fixed incorrect handling of URIs with null path component
   Contributed by Oleg Kalnichevski <olegk at apache.org>
 

Modified: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientProxyAuthentication.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientProxyAuthentication.java?rev=604433&r1=604432&r2=604433&view=diff
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientProxyAuthentication.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientProxyAuthentication.java Sat Dec 15 06:35:20 2007
@@ -34,7 +34,6 @@
 import org.apache.http.auth.AuthScope;
 import org.apache.http.auth.UsernamePasswordCredentials;
 import org.apache.http.client.methods.HttpGet;
-import org.apache.http.conn.HttpRoute;
 import org.apache.http.conn.params.ConnRoutePNames;
 import org.apache.http.impl.client.DefaultHttpClient;
 

Modified: jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/client/protocol/RequestAddCookies.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/client/protocol/RequestAddCookies.java?rev=604433&r1=604432&r2=604433&view=diff
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/client/protocol/RequestAddCookies.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/client/protocol/RequestAddCookies.java Sat Dec 15 06:35:20 2007
@@ -159,7 +159,7 @@
             }
         }
         // Generate Cookie request headers
-        if (cookies.length > 0) {
+        if (!matchedCookies.isEmpty()) {
             List<Header> headers = cookieSpec.formatCookies(matchedCookies);
             for (int i = 0; i < headers.size(); i++) {
                 request.addHeader(headers.get(i));

Modified: jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultClientRequestDirector.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultClientRequestDirector.java?rev=604433&r1=604432&r2=604433&view=diff
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultClientRequestDirector.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultClientRequestDirector.java Sat Dec 15 06:35:20 2007
@@ -32,7 +32,6 @@
 package org.apache.http.impl.client;
 
 import java.io.IOException;
-import java.net.InetAddress;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Map;
@@ -833,7 +832,6 @@
         HttpRoute route = roureq.getRoute();
         HttpHost target = route.getTargetHost();
         HttpHost proxy = route.getProxyHost();
-        InetAddress localAddress = route.getLocalAddress();
         
         HttpParams params = request.getParams();
         if (HttpClientParams.isRedirecting(params) && 
@@ -852,24 +850,15 @@
                     uri.getPort(),
                     uri.getScheme());
             
-            Scheme schm = connManager.getSchemeRegistry().
-                getScheme(newTarget.getSchemeName());
-            
-            HttpRoute newRoute = new HttpRoute(
-                    newTarget,
-                    localAddress,
-                    proxy,
-                    schm.isLayered(),
-                    (proxy != null),
-                    (proxy != null));
-
             HttpGet redirect = new HttpGet(uri);
+            redirect.setParams(params);
+            RoutedRequest newRequest = determineRoute(newTarget, redirect, context);
             
             if (LOG.isDebugEnabled()) {
-                LOG.debug("Redirecting to '" + uri + "' via " + newRoute);
+                LOG.debug("Redirecting to '" + uri + "' via " + newRequest.getRoute());
             }
             
-            return new RoutedRequest.Impl(redirect, newRoute);
+            return newRequest;
         }
 
         CredentialsProvider credsProvider = (CredentialsProvider)

Modified: jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java?rev=604433&r1=604432&r2=604433&view=diff
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultHttpClient.java Sat Dec 15 06:35:20 2007
@@ -32,9 +32,6 @@
 package org.apache.http.impl.client;
 
 import org.apache.http.ConnectionReuseStrategy;
-import org.apache.http.HttpException;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpRequest;
 import org.apache.http.HttpVersion;
 import org.apache.http.auth.AuthSchemeRegistry;
 import org.apache.http.client.AuthenticationHandler;
@@ -43,8 +40,8 @@
 import org.apache.http.client.HttpRequestRetryHandler;
 import org.apache.http.client.RedirectHandler;
 import org.apache.http.client.params.AuthPolicy;
-import org.apache.http.client.params.CookiePolicy;
 import org.apache.http.client.params.ClientPNames;
+import org.apache.http.client.params.CookiePolicy;
 import org.apache.http.client.protocol.ClientContext;
 import org.apache.http.client.protocol.RequestAddCookies;
 import org.apache.http.client.protocol.RequestDefaultHeaders;
@@ -53,7 +50,6 @@
 import org.apache.http.client.protocol.ResponseProcessCookies;
 import org.apache.http.conn.ClientConnectionManager;
 import org.apache.http.conn.ClientConnectionManagerFactory;
-import org.apache.http.conn.HttpRoute;
 import org.apache.http.conn.HttpRoutePlanner;
 import org.apache.http.conn.PlainSocketFactory;
 import org.apache.http.conn.Scheme;