javiersantos / AppUpdater

A library that checks for your apps' updates on Google Play, GitHub, Amazon, F-Droid or your own server. API 9+ required.
Apache License 2.0
1.98k stars 412 forks source link

RssParser crashed when there is I/O error #62

Closed thubalek closed 7 years ago

thubalek commented 7 years ago

I'm getting SSL Handshake exception on some devices. I think that XML parser should be more robust and not crash whole app when there is I/O error. I'll submit PR with bugfix later

Fatal Exception: java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:300) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) at java.util.concurrent.FutureTask.setException(FutureTask.java:222) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818) Caused by java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: SSL handshake aborted: ssl=0x558f26a0c0: I/O error during system call, Connection reset by peer at com.github.javiersantos.appupdater.RssParser.getInputStream(RssParser.java:63) at com.github.javiersantos.appupdater.RssParser.parse(RssParser.java:35) at com.github.javiersantos.appupdater.UtilsLibrary.getLatestAppVersionXml(UtilsLibrary.java:247) at com.github.javiersantos.appupdater.UtilsAsync$LatestAppVersion.doInBackground(UtilsAsync.java:57) at com.github.javiersantos.appupdater.UtilsAsync$LatestAppVersion.doInBackground(UtilsAsync.java:13) at android.os.AsyncTask$2.call(AsyncTask.java:288) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818) Caused by javax.net.ssl.SSLHandshakeException: SSL handshake aborted: ssl=0x558f26a0c0: I/O error during system call, Connection reset by peer at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(NativeCrypto.java) at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:302) at com.android.okhttp.Connection.upgradeToTls(Connection.java:197) at com.android.okhttp.Connection.connect(Connection.java:151) at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276) at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211) at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:373) at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:323) at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:190) at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25) at com.github.javiersantos.appupdater.RssParser.getInputStream(RssParser.java:58) at com.github.javiersantos.appupdater.RssParser.parse(RssParser.java:35) at com.github.javiersantos.appupdater.UtilsLibrary.getLatestAppVersionXml(UtilsLibrary.java:247) at com.github.javiersantos.appupdater.UtilsAsync$LatestAppVersion.doInBackground(UtilsAsync.java:57) at com.github.javiersantos.appupdater.UtilsAsync$LatestAppVersion.doInBackground(UtilsAsync.java:13) at android.os.AsyncTask$2.call(AsyncTask.java:288) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818)