Bug 1356693 - infer: fix RESOURCE_LEAK's in stumbler draft
authorAndrzej Hunt <ahunt@mozilla.com>
Mon, 17 Apr 2017 16:33:57 -0700
changeset 569897 8b6cb491bcbcc59092ae07f6b2620dbe561dbca8
parent 569896 68b8cb64a7d6ccf41fbf4dcf5ff387581cac048c
child 569898 3569248b3eed5eecd71f4a0cc5665289ffa21098
push id56302
push userahunt@mozilla.com
push dateFri, 28 Apr 2017 00:45:18 +0000
bugs1356693
milestone55.0a1
Bug 1356693 - infer: fix RESOURCE_LEAK's in stumbler MozReview-Commit-ID: 8bMGr6v9DKn
mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/Zipper.java
--- 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();
     }
 }