diff --git a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java index f088157..59f7ead 100644 --- a/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java +++ b/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java @@ -60,6 +60,7 @@ import org.apache.http.client.protocol.HttpClientContext; import org.apache.http.client.utils.DateUtils; import org.apache.http.conn.routing.HttpRoute; import org.apache.http.impl.execchain.ClientExecChain; +import org.apache.http.impl.execchain.ProtocolExec; import org.apache.http.message.BasicHttpResponse; import org.apache.http.protocol.HTTP; import org.apache.http.protocol.HttpContext; @@ -735,6 +736,7 @@ public class CachingExec implements ClientExecChain { final HttpCacheEntry cacheEntry) throws IOException, HttpException { final HttpRequestWrapper conditionalRequest = conditionalRequestBuilder.buildConditionalRequest(request, cacheEntry); + ProtocolExec.rewriteRequestURI(conditionalRequest, route); Date requestDate = getCurrentDate(); CloseableHttpResponse backendResponse = backend.execute( diff --git a/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestHttpCacheJiraNumber1147.java b/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestHttpCacheJiraNumber1147.java index 99b78b8..0dec410 100644 --- a/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestHttpCacheJiraNumber1147.java +++ b/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestHttpCacheJiraNumber1147.java @@ -93,6 +93,8 @@ public class TestHttpCacheJiraNumber1147 { final HttpHost target = new HttpHost("somehost"); final HttpRoute route = new HttpRoute(target); + context.setTargetHost(target); + final Date now = new Date(); final Date tenSecondsAgo = new Date(now.getTime() - 10 * 1000L); diff --git a/httpclient/src/main/java/org/apache/http/impl/execchain/ProtocolExec.java b/httpclient/src/main/java/org/apache/http/impl/execchain/ProtocolExec.java index 5bdde8c..ab17ac3 100644 --- a/httpclient/src/main/java/org/apache/http/impl/execchain/ProtocolExec.java +++ b/httpclient/src/main/java/org/apache/http/impl/execchain/ProtocolExec.java @@ -84,7 +84,7 @@ public class ProtocolExec implements ClientExecChain { this.httpProcessor = httpProcessor; } - void rewriteRequestURI( + public static void rewriteRequestURI( final HttpRequestWrapper request, final HttpRoute route) throws ProtocolException { try {