[ 
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]

Reply via email to