koush / ion

Android Asynchronous Networking and Image Loading
Other
6.29k stars 1.04k forks source link

Can't load some images when withResponse() is used #862

Open mightyfrog opened 6 years ago

mightyfrog commented 6 years ago

Ion fails with ConnectionClosedException. It doesn't happen all the time but it does fail with some images from Imgur. Directly loading one into an ImageView without withResponse() seems ok.

Ion.with(this)
        .load("http://i.imgur.com/UVFarm4h.jpg") // works
        //.load("https://imgur.com/pJwVCCq.jpg") // doesn't work
        .asString()
        .withResponse()
        .setCallback { e, result ->
            android.util.Log.e("ion test", "" + result.result)
        }
mightyfrog commented 6 years ago

(636 ms) https://imgur.com/pJwVCCq.jpeg: Connection error connection closed before response completed. com.koushikdutta.async.http.ConnectionClosedException: connection closed before response completed. at com.koushikdutta.async.http.AsyncHttpResponseImpl$2.onCompleted(AsyncHttpResponseImpl.java:54) at com.koushikdutta.async.AsyncSSLSocketWrapper.report(AsyncSSLSocketWrapper.java:438) at com.koushikdutta.async.AsyncSSLSocketWrapper.access$100(AsyncSSLSocketWrapper.java:30) at com.koushikdutta.async.AsyncSSLSocketWrapper$5.onDataAvailable(AsyncSSLSocketWrapper.java:224) at com.koushikdutta.async.Util.emitAllData(Util.java:23) at com.koushikdutta.async.AsyncNetworkSocket.onReadable(AsyncNetworkSocket.java:152) at com.koushikdutta.async.AsyncServer.runLoop(AsyncServer.java:821) at com.koushikdutta.async.AsyncServer.run(AsyncServer.java:658) at com.koushikdutta.async.AsyncServer.access$800(AsyncServer.java:44) at com.koushikdutta.async.AsyncServer$14.run(AsyncServer.java:600) Caused by: javax.net.ssl.SSLException: java.io.EOFException: Read error at com.google.android.gms.org.conscrypt.SSLUtils.toSSLException(:com.google.android.gms@11951440:2) at com.google.android.gms.org.conscrypt.ConscryptEngine.convertException(:com.google.android.gms@11951440:2) at com.google.android.gms.org.conscrypt.ConscryptEngine.unwrap(:com.google.android.gms@11951440:57) at com.google.android.gms.org.conscrypt.ConscryptEngine.unwrap(:com.google.android.gms@11951440:72) at com.google.android.gms.org.conscrypt.ConscryptEngine.unwrap(:com.google.android.gms@11951440:2) at com.koushikdutta.async.AsyncSSLSocketWrapper$5.onDataAvailable(AsyncSSLSocketWrapper.java:194) at com.koushikdutta.async.Util.emitAllData(Util.java:23)  at com.koushikdutta.async.AsyncNetworkSocket.onReadable(AsyncNetworkSocket.java:152)  at com.koushikdutta.async.AsyncServer.runLoop(AsyncServer.java:821)  at com.koushikdutta.async.AsyncServer.run(AsyncServer.java:658)  at com.koushikdutta.async.AsyncServer.access$800(AsyncServer.java:44)  at com.koushikdutta.async.AsyncServer$14.run(AsyncServer.java:600)  Caused by: java.io.EOFException: Read error at com.google.android.gms.org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method) at com.google.android.gms.org.conscrypt.SslWrapper.readDirectByteBuffer(Unknown Source:6) at com.google.android.gms.org.conscrypt.ConscryptEngine.readPlaintextDataDirect(Unknown Source:6) at com.google.android.gms.org.conscrypt.ConscryptEngine.readPlaintextDataHeap(:com.google.android.gms@11951440:4) at com.google.android.gms.org.conscrypt.ConscryptEngine.readPlaintextData(:com.google.android.gms@11951440:3) at com.google.android.gms.org.conscrypt.ConscryptEngine.unwrap(:com.google.android.gms@11951440:45) at com.google.android.gms.org.conscrypt.ConscryptEngine.unwrap(:com.google.android.gms@11951440:72)  at com.google.android.gms.org.conscrypt.ConscryptEngine.unwrap(:com.google.android.gms@11951440:2)  at com.koushikdutta.async.AsyncSSLSocketWrapper$5.onDataAvailable(AsyncSSLSocketWrapper.java:194)  at com.koushikdutta.async.Util.emitAllData(Util.java:23)  at com.koushikdutta.async.AsyncNetworkSocket.onReadable(AsyncNetworkSocket.java:152)  at com.koushikdutta.async.AsyncServer.runLoop(AsyncServer.java:821)  at com.koushikdutta.async.AsyncServer.run(AsyncServer.java:658)  at com.koushikdutta.async.AsyncServer.access$800(AsyncServer.java:44)  at com.koushikdutta.async.AsyncServer$14.run(AsyncServer.java:600)