ContentEncodingHttpClient.execute(HttpGet, ResponseHandler<T>) throws
IOException when reading chunked gzip response
--------------------------------------------------------------------------------------------------------------------
Key: HTTPCLIENT-1075
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1075
Project: HttpComponents HttpClient
Issue Type: Bug
Components: HttpClient
Affects Versions: 4.1.1
Environment: I'm using HttpClient 4.1.1 on Mac OS X 10.6.7.
`java -version` output:
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode)
Reporter: Adam Hahn
Fix For: 4.1.2
The following snippet:
String url = "http://yahoo.com";
HttpClient httpClient = new ContentEncodingHttpClient();
HttpGet get = new HttpGet(url);
String content = httpClient.execute(get, new BasicResponseHandler());
throws:
java.io.IOException: Attempted read from closed stream.
at
org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:126)
at java.util.zip.CheckedInputStream.read(CheckedInputStream.java:42)
at java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:205)
at java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:197)
at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:136)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:58)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:68)
at
org.apache.http.client.entity.GzipDecompressingEntity.getContent(GzipDecompressingEntity.java:63)
at
org.apache.http.conn.BasicManagedEntity.getContent(BasicManagedEntity.java:88)
at org.apache.http.util.EntityUtils.consume(EntityUtils.java:65)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:974)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:919)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:910)
at tv.adap.service.HttpPoolTest.testChunkedGzip(HttpPoolTest.java:41)
whereas the following snippet runs fine:
String url = "http://yahoo.com";
HttpClient httpClient = new ContentEncodingHttpClient();
HttpGet get = new HttpGet(url);
HttpResponse response = httpClient.execute(get);
HttpEntity entity = response.getEntity();
String content = EntityUtils.toString(entity);
These two snippets should be functionally the same (putting the entity body
into content). Creating a JIRA per the recommendation of Oleg from
httpclient-users.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]