aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java25
1 files changed, 14 insertions, 11 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java
index 5a314ad0b..eabbf83b8 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ParcelableFileCache.java
@@ -66,21 +66,24 @@ public class ParcelableFileCache<E extends Parcelable> {
File tempFile = new File(mContext.getCacheDir(), mFilename);
- DataOutputStream oos = new DataOutputStream(new FileOutputStream(tempFile));
- oos.writeInt(numEntries);
+ DataOutputStream oos = new DataOutputStream(new FileOutputStream(tempFile));
- while (it.hasNext()) {
- Parcel p = Parcel.obtain(); // creating empty parcel object
- p.writeParcelable(it.next(), 0); // saving bundle as parcel
- byte[] buf = p.marshall();
- oos.writeInt(buf.length);
- oos.write(buf);
- p.recycle();
+ try {
+ oos.writeInt(numEntries);
+
+ while (it.hasNext()) {
+ Parcel p = Parcel.obtain(); // creating empty parcel object
+ p.writeParcelable(it.next(), 0); // saving bundle as parcel
+ byte[] buf = p.marshall();
+ oos.writeInt(buf.length);
+ oos.write(buf);
+ p.recycle();
+ }
+ } finally {
+ oos.close();
}
- oos.close();
-
}
/**