You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by kw...@apache.org on 2013/01/10 12:27:36 UTC
svn commit: r1431285 -
/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
Author: kwright
Date: Thu Jan 10 11:27:36 2013
New Revision: 1431285
URL: http://svn.apache.org/viewvc?rev=1431285&view=rev
Log:
Second fix for HTTPCLIENT-1296. Include Oleg's suggestions as to a better way to obtain a port from the non-existent target.
Modified:
httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java?rev=1431285&r1=1431284&r2=1431285&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java (original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/DefaultRequestDirector.java Thu Jan 10 11:27:36 2013
@@ -380,6 +380,15 @@ public class DefaultRequestDirector impl
virtualHost = (HttpHost) origWrapper.getParams().getParameter(ClientPNames.VIRTUAL_HOST);
+ // HTTPCLIENT-1092 - add the port if necessary
+ if (virtualHost != null && virtualHost.getPort() == -1) {
+ HttpHost host = (target != null) ? target : origRoute.getTargetHost();
+ int port = host.getPort();
+ if (port != -1){
+ virtualHost = new HttpHost(virtualHost.getHostName(), port, virtualHost.getSchemeName());
+ }
+ }
+
RoutedRequest roureq = new RoutedRequest(origWrapper, origRoute);
boolean reuse = false;
@@ -449,27 +458,19 @@ public class DefaultRequestDirector impl
}
// Get target. Even if there's virtual host, we may need the target to set the port.
- URI requestURI = wrapper.getURI();
- if (requestURI.isAbsolute()) {
- target = new HttpHost(
- requestURI.getHost(), requestURI.getPort(), requestURI.getScheme());
+ if (virtualHost != null) {
+ target = virtualHost;
+ } else {
+ URI requestURI = wrapper.getURI();
+ if (requestURI.isAbsolute()) {
+ target = new HttpHost(
+ requestURI.getHost(), requestURI.getPort(), requestURI.getScheme());
+ }
}
if (target == null) {
target = route.getTargetHost();
}
- // Override the target if the virtual host is present. But make sure the port is right.
- if (virtualHost != null) {
- // HTTPCLIENT-1092 - add the port if necessary
- if (virtualHost.getPort() == -1 && target != null) {
- int port = target.getPort();
- if (port != -1) {
- virtualHost = new HttpHost(virtualHost.getHostName(), port, virtualHost.getSchemeName());
- }
- }
- target = virtualHost;
- }
-
// Reset headers on the request wrapper
wrapper.resetHeaders();
// Re-write request URI if needed