Bug 1356693 - infer: fix RESOURCE_LEAK's in stumbler
MozReview-Commit-ID: 8bMGr6v9DKn
--- a/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/Zipper.java
+++ b/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/Zipper.java
@@ -25,24 +25,34 @@ public class Zipper {
gstream.close();
os.close();
}
return output;
}
public static String unzipData(byte[] data) throws IOException {
StringBuilder result = new StringBuilder();
+
final ByteArrayInputStream bs = new ByteArrayInputStream(data);
- GZIPInputStream gstream = new GZIPInputStream(bs);
+ BufferedReader in = null;
try {
- InputStreamReader reader = new InputStreamReader(gstream, StringUtils.UTF_8);
- BufferedReader in = new BufferedReader(reader);
+ in = new BufferedReader(new InputStreamReader(new GZIPInputStream(bs), StringUtils.UTF_8));
String read;
while ((read = in.readLine()) != null) {
result.append(read);
}
} finally {
- gstream.close();
+ // We usually use IOUtils.safeStreamClose(), however stumbler is completely independent
+ // of the rest of fennec, and hence we can't use it here:
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException e) {
+ // eat it - nothing we can do
+ }
+ }
+
+ // Is always non-null
bs.close();
}
return result.toString();
}
}