]> gitweb.fperrin.net Git - Dictionary.git/commitdiff
Another resource leak fix.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Fri, 12 Feb 2016 23:32:34 +0000 (00:32 +0100)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Fri, 12 Feb 2016 23:40:13 +0000 (00:40 +0100)
src/com/hughes/android/util/PersistentObjectCache.java

index 56c546e9d5a869da25e712e6a4e8897c718d6c2c..a10d7c89bf338ffb9701ebc9a915e4bd472f4f28 100644 (file)
@@ -76,12 +76,14 @@ public class PersistentObjectCache {
                 Log.d(getClass().getSimpleName(), "File empty: " + src);
                 return null;
             }
+           ObjectInputStream in = null;
             try {
-                final ObjectInputStream in = new ConstrainedOIS(new FileInputStream(src));
+                in = new ConstrainedOIS(new FileInputStream(src));
                 object = in.readObject();
                 in.close();
             } catch (Exception e) {
                 Log.e(getClass().getSimpleName(), "Deserialization failed: " + src, e);
+                try { if (in != null) in.close(); } catch (IOException e2) {}
                 return null;
             }
             objects.put(filename, object);
@@ -94,13 +96,14 @@ public class PersistentObjectCache {
     public synchronized void write(final String filename, final Serializable object) {
         objects.put(filename, object);
         final File dest = new File(dir, filename);
+       ObjectOutputStream out = null;
         try {
-            final ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(dest));
+            out = new ObjectOutputStream(new FileOutputStream(dest));
             out.writeObject(object);
-            out.close();
         } catch (Exception e) {
             Log.e(getClass().getSimpleName(), "Serialization failed: " + dest, e);
         }
+        try { if (out != null) out.close(); } catch (IOException e) {}
     }
 
     private PersistentObjectCache(final Context context) {