[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-1690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16326094#comment-16326094
 ] 

ASF GitHub Bot commented on HTTPCLIENT-1690:
--------------------------------------------

Github user catchsudheera commented on the issue:

    https://github.com/apache/httpcomponents-client/pull/91
  
    @ok2c Actually, in master branch commit. you missed one change. Surprised 
why tests didn't fail and found out that test is not complete. Updated test 
case for 4.5.x and 4.6.x and added missing change for master branch. Sent 
separate PRs for each branch.. closing this PR


> ZipException occurs when content-encoding-header is set for 304-response 
> -------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-1690
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1690
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpCache
>    Affects Versions: 4.5
>            Reporter: Johannes Gruber
>            Priority: Major
>              Labels: stuck, volunteers-wanted
>             Fix For: 4.5.5, 4.6 Alpha1, 5.0 Beta1
>
>
> h4.Test scenario
> - Setup http server
> - Execute Request twice
> - First response
> -- Status: 200
> -- Cache-Control: public
> -- ETag: 123
> -- Body: some text
> - Second response
> -- Status: 304
> -- Content-Encoding: gzip
> - Effect: java.util.zip.ZipException: Not in GZIP format
> - Expected: Cached response
> h4.JUnit-Test
> - Dependencies: junit 4.11, commons-io 2.4, com.github.tomakehurst:wiremock 
> 1.57
> {code}
> import com.github.tomakehurst.wiremock.junit.WireMockRule;
> import org.apache.commons.io.IOUtils;
> import org.apache.http.client.methods.CloseableHttpResponse;
> import org.apache.http.client.methods.HttpGet;
> import org.apache.http.impl.client.CloseableHttpClient;
> import org.apache.http.impl.client.HttpClientBuilder;
> import org.apache.http.impl.client.cache.CacheConfig;
> import org.apache.http.impl.client.cache.CachingHttpClientBuilder;
> import org.junit.Assert;
> import org.junit.Rule;
> import org.junit.Test;
> import java.io.IOException;
> import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
> import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
> import static com.github.tomakehurst.wiremock.client.WireMock.get;
> import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
> import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
> public class GZipCachingHttpClientBuilderTest  {
>   private static final String TEST_BODY = "Sometext";
>   @Rule
>   public WireMockRule wireMockRule = new WireMockRule(0);
>   @Test
>   public void testGzipError() throws Exception {
>     stubFor(get(urlEqualTo("/my/resource"))
>         .willReturn(aResponse()
>                 .withStatus(200)
>                 .withHeader("Cache-Control", "public")
>                 .withHeader("ETag", "123")
>                 .withBody(TEST_BODY)
>         ));
>     stubFor(get(urlEqualTo("/my/resource"))
>         .withHeader("If-None-Match", equalTo("123"))
>         .willReturn(aResponse()
>                 .withHeader("Content-Encoding", "gzip")
>                 .withStatus(304)
>         ));
>     CacheConfig.Builder cfgBuilder = CacheConfig.custom();
>     CacheConfig cfg = cfgBuilder.setMaxCacheEntries(1024).build();
>     HttpClientBuilder bld = 
> CachingHttpClientBuilder.create().setCacheConfig(cfg);
>     CloseableHttpClient client = bld.build();
>     executeRequest(client);
>     executeRequest(client); // second request causes Exception :-(
>   }
>   private void executeRequest(CloseableHttpClient client) throws IOException {
>     int port = wireMockRule.port();
>     CloseableHttpResponse resp = client.execute(new 
> HttpGet("http://localhost:"+port+"/my/resource";));
>     Assert.assertEquals(TEST_BODY, 
> IOUtils.toString(resp.getEntity().getContent()));
>   }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to