From 9b35942c175e271faa52627896c86e5edc46362c Mon Sep 17 00:00:00 2001
From: Andrew Gaul <andrew@gaul.org>
Date: Tue, 11 Dec 2012 18:25:31 -0800
Subject: [PATCH] Buffer all InputStreams and Readers

Also prefer generic Reader over InputStreamReader.
---
 src/org/fdroid/fdroid/Hasher.java         | 4 +++-
 src/org/fdroid/fdroid/RepoXMLHandler.java | 9 +++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/org/fdroid/fdroid/Hasher.java b/src/org/fdroid/fdroid/Hasher.java
index 6558662ce..90ebd761e 100644
--- a/src/org/fdroid/fdroid/Hasher.java
+++ b/src/org/fdroid/fdroid/Hasher.java
@@ -21,6 +21,7 @@
 package org.fdroid.fdroid;
 
 import java.io.File;
+import java.io.BufferedInputStream;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.security.MessageDigest;
@@ -62,7 +63,8 @@ public class Hasher {
             byte[] buffer = new byte[1024];
             int read = 0;
             try {
-                InputStream is = new FileInputStream(file);
+                InputStream is = new BufferedInputStream(
+                        new FileInputStream(file));
                 while ((read = is.read(buffer)) > 0) {
                     digest.update(buffer, 0, read);
                 }
diff --git a/src/org/fdroid/fdroid/RepoXMLHandler.java b/src/org/fdroid/fdroid/RepoXMLHandler.java
index 307b8c2af..c3a09aebc 100644
--- a/src/org/fdroid/fdroid/RepoXMLHandler.java
+++ b/src/org/fdroid/fdroid/RepoXMLHandler.java
@@ -21,13 +21,14 @@ package org.fdroid.fdroid;
 
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.io.OutputStream;
+import java.io.Reader;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -380,9 +381,9 @@ public class RepoXMLHandler extends DefaultHandler {
                 RepoXMLHandler handler = new RepoXMLHandler(repo.id, apps);
                 xr.setContentHandler(handler);
 
-                InputStreamReader isr = new FileReader(new File(
-                        ctx.getFilesDir() + "/tempindex.xml"));
-                InputSource is = new InputSource(isr);
+                Reader r = new BufferedReader(new FileReader(new File(
+                        ctx.getFilesDir() + "/tempindex.xml")));
+                InputSource is = new InputSource(r);
                 xr.parse(is);
 
                 if (handler.pubkey != null && repo.pubkey == null) {