Return-Path: X-Original-To: apmail-hc-commits-archive@www.apache.org Delivered-To: apmail-hc-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 602E81153B for ; Mon, 18 Aug 2014 07:55:35 +0000 (UTC) Received: (qmail 43117 invoked by uid 500); 18 Aug 2014 07:55:35 -0000 Delivered-To: apmail-hc-commits-archive@hc.apache.org Received: (qmail 43082 invoked by uid 500); 18 Aug 2014 07:55:35 -0000 Mailing-List: contact commits-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpComponents Project" Delivered-To: mailing list commits@hc.apache.org Received: (qmail 43073 invoked by uid 99); 18 Aug 2014 07:55:35 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 18 Aug 2014 07:55:35 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 18 Aug 2014 07:55:12 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 914C72388999 for ; Mon, 18 Aug 2014 07:55:10 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1618558 - in /httpcomponents/httpclient/trunk/httpclient-cache/src: main/java/org/apache/http/impl/client/cache/CachingExec.java test/java/org/apache/http/impl/client/cache/TestCachingExec.java Date: Mon, 18 Aug 2014 07:55:10 -0000 To: commits@hc.apache.org From: olegk@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140818075510.914C72388999@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: olegk Date: Mon Aug 18 07:55:10 2014 New Revision: 1618558 URL: http://svn.apache.org/r1618558 Log: HTTPCLIENT-1542: Caching HttpClient uses absolute URIs for validation (follow-up patch, more tests) Based on contribution by Joseph Walton Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCachingExec.java Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java?rev=1618558&r1=1618557&r2=1618558&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java (original) +++ httpcomponents/httpclient/trunk/httpclient-cache/src/main/java/org/apache/http/impl/client/cache/CachingExec.java Mon Aug 18 07:55:10 2014 @@ -745,7 +745,7 @@ public class CachingExec implements Clie final URI uri = conditionalRequest.getURI(); if (uri != null) { try { - request.setURI(URIUtils.rewriteURIForRoute(uri, route)); + conditionalRequest.setURI(URIUtils.rewriteURIForRoute(uri, route)); } catch (final URISyntaxException ex) { throw new ProtocolException("Invalid URI: " + uri, ex); } Modified: httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCachingExec.java URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCachingExec.java?rev=1618558&r1=1618557&r2=1618558&view=diff ============================================================================== --- httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCachingExec.java (original) +++ httpcomponents/httpclient/trunk/httpclient-cache/src/test/java/org/apache/http/impl/client/cache/TestCachingExec.java Mon Aug 18 07:55:10 2014 @@ -53,6 +53,7 @@ import org.apache.http.HttpVersion; import org.apache.http.client.cache.HttpCacheEntry; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpExecutionAware; +import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpRequestWrapper; import org.apache.http.client.protocol.HttpClientContext; import org.apache.http.client.utils.DateUtils; @@ -309,6 +310,36 @@ public class TestCachingExec extends Tes } @Test + public void testRevalidationRewritesAbsoluteUri() throws Exception { + + mockImplMethods(GET_CURRENT_DATE); + + // Fail on an unexpected request, rather than causing a later NPE + EasyMock.resetToStrict(mockBackend); + + final HttpRequestWrapper validate = HttpRequestWrapper.wrap( + new HttpGet("http://foo.example.com/resource")); + final HttpRequestWrapper relativeValidate = HttpRequestWrapper.wrap( + new BasicHttpRequest("GET", "/resource", HttpVersion.HTTP_1_1)); + final CloseableHttpResponse originResponse = Proxies.enhanceResponse( + new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "Okay")); + + conditionalRequestBuilderReturns(validate); + getCurrentDateReturns(requestDate); + + final CloseableHttpResponse resp = mockBackend.execute(EasyMock.isA(HttpRoute.class), + eqRequest(relativeValidate), EasyMock.isA(HttpClientContext.class), + EasyMock. isNull()); + expect(resp).andReturn(originResponse); + + getCurrentDateReturns(responseDate); + + replayMocks(); + impl.revalidateCacheEntry(route, request, context, null, entry); + verifyMocks(); + } + + @Test public void testEndlessResponsesArePassedThrough() throws Exception { impl = createCachingExecChain(mockBackend, new BasicHttpCache(), CacheConfig.DEFAULT);