From 568b615ecf8d41db111fe9570a4b2cf53a2324b4 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 10 Sep 2012 21:00:03 +0100 Subject: [PATCH] Take notice of HTTP response code when downloading icons --- src/org/fdroid/fdroid/RepoXMLHandler.java | 30 ++++++++++++++--------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/org/fdroid/fdroid/RepoXMLHandler.java b/src/org/fdroid/fdroid/RepoXMLHandler.java index 848406561..c5440de1c 100644 --- a/src/org/fdroid/fdroid/RepoXMLHandler.java +++ b/src/org/fdroid/fdroid/RepoXMLHandler.java @@ -28,6 +28,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; +import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.security.cert.Certificate; @@ -244,20 +245,25 @@ public class RepoXMLHandler extends DefaultHandler { if (f.exists()) return; - BufferedInputStream getit = new BufferedInputStream(new URL(mserver - + "/icons/" + app.icon).openStream()); - FileOutputStream saveit = new FileOutputStream(destpath); - BufferedOutputStream bout = new BufferedOutputStream(saveit, 1024); - byte data[] = new byte[1024]; + URL u = new URL(mserver + "/icons/" + app.icon); + HttpURLConnection uc = (HttpURLConnection) u.openConnection(); + if (uc.getResponseCode() == 200) { + BufferedInputStream getit = new BufferedInputStream( + uc.getInputStream()); + FileOutputStream saveit = new FileOutputStream(destpath); + BufferedOutputStream bout = new BufferedOutputStream(saveit, + 1024); + byte data[] = new byte[1024]; - int readed = getit.read(data, 0, 1024); - while (readed != -1) { - bout.write(data, 0, readed); - readed = getit.read(data, 0, 1024); + int readed = getit.read(data, 0, 1024); + while (readed != -1) { + bout.write(data, 0, readed); + readed = getit.read(data, 0, 1024); + } + bout.close(); + getit.close(); + saveit.close(); } - bout.close(); - getit.close(); - saveit.close(); } catch (Exception e) { }