[
https://issues.apache.org/jira/browse/HTTPCLIENT-1465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Oleg Kalnichevski resolved HTTPCLIENT-1465.
-------------------------------------------
Resolution: Not A Problem
bq. But web browser and wget works fine on that site.
So what? We do not really know if those applications simply quietly ignore the
problem, do we? Likewise, one can catch EOFException exception and try to use
whatever data have been received up to this point.
By the way, I also tried to use Commons Compress (which is believed to be able
to handle various corner cases better) instead of the internal JRE gzip
decompressor and got exactly the same result. This really seems to support my
assertion that the blame here lies with the server.
{noformat}
Exception in thread "main" java.io.EOFException
at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:290)
at
org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream.read(GzipCompressorInputStream.java:283)
at java.io.InputStream.read(InputStream.java:101)
at
org.apache.http.client.entity.LazyDecompressingInputStream.read(LazyDecompressingInputStream.java:68)
{noformat}
> IOException when reading gziped content from site.
> --------------------------------------------------
>
> Key: HTTPCLIENT-1465
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1465
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Components: HttpClient
> Affects Versions: 4.3.2
> Reporter: Igor Skakov
> Priority: Minor
>
> Some description:
> IOException when reading gziped content from site.
> But web browser and wget works fine on that site.
> Source code:
> public class Http {
> public static void main(String[] args) throws Exception {
> HttpClient hc = HttpClients.createDefault();
> HttpHost host = new HttpHost("mail.ru");
> HttpGet hget = new HttpGet("/");
> HttpResponse response = hc.execute(host, hget);
> HttpEntity entity = response.getEntity();
> InputStream is = entity.getContent();
> BufferedInputStream bis = new BufferedInputStream(is);
>
> byte[] buffer = new byte[4096];
> int readed = -1;
>
> while((readed = bis.read(buffer)) != -1) {
>
> }
>
> //System.out.println(body);
> }
> }
> Error:
> Exception in thread "main" java.io.IOException: Attempted read on closed
> stream.
> at
> org.apache.http.conn.EofSensorInputStream.isReadAllowed(EofSensorInputStream.java:109)
> at
> org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:118)
> at java.io.SequenceInputStream.read(Unknown Source)
> at java.io.SequenceInputStream.read(Unknown Source)
> at java.util.zip.GZIPInputStream.readUByte(Unknown Source)
> at java.util.zip.GZIPInputStream.readUShort(Unknown Source)
> at java.util.zip.GZIPInputStream.readUInt(Unknown Source)
> at java.util.zip.GZIPInputStream.readTrailer(Unknown Source)
> at java.util.zip.GZIPInputStream.read(Unknown Source)
> at java.util.zip.InflaterInputStream.read(Unknown Source)
> at
> org.apache.http.client.entity.LazyDecompressingInputStream.read(LazyDecompressingInputStream.java:56)
> at java.io.InputStream.read(Unknown Source)
> at java.io.BufferedInputStream.fill(Unknown Source)
> at java.io.BufferedInputStream.read1(Unknown Source)
> at java.io.BufferedInputStream.read(Unknown Source)
> at java.io.FilterInputStream.read(Unknown Source)
> at Http.main(Http.java:26)
> Version 4.3.2
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]