aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2012-11-13 18:43:57 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2012-11-13 18:43:57 -0800
commitf592270a0f092c5ef52bbb0f24c8873f46e75503 (patch)
tree9f92610c284528de0b98c9c5ee33243ed77b0819 /java/src
parent7d34763e23cb49c8c96dbf9b4c613e17098dd919 (diff)
parent7648b37d1e4cf3799288f85cc9c5f67b515e24c4 (diff)
downloadlatinime-f592270a0f092c5ef52bbb0f24c8873f46e75503.tar.gz
latinime-f592270a0f092c5ef52bbb0f24c8873f46e75503.tar.xz
latinime-f592270a0f092c5ef52bbb0f24c8873f46e75503.zip
am 7648b37d: Merge "Make sure all FDs are correctly closed." into jb-mr1.1-dev
* commit '7648b37d1e4cf3799288f85cc9c5f67b515e24c4': Make sure all FDs are correctly closed.
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java30
1 files changed, 19 insertions, 11 deletions
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
index b0b65edb6..9a3f88f52 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
@@ -154,6 +154,9 @@ public final class BinaryDictionaryFileDumper {
for (int mode = MODE_MIN; mode <= MODE_MAX; ++mode) {
InputStream originalSourceStream = null;
InputStream inputStream = null;
+ InputStream uncompressedStream = null;
+ InputStream decryptedStream = null;
+ BufferedInputStream bufferedStream = null;
File outputFile = null;
FileOutputStream outputStream = null;
AssetFileDescriptor afd = null;
@@ -173,18 +176,19 @@ public final class BinaryDictionaryFileDumper {
// Get the appropriate decryption method for this try
switch (mode) {
case COMPRESSED_CRYPTED_COMPRESSED:
- inputStream = FileTransforms.getUncompressedStream(
- FileTransforms.getDecryptedStream(
- FileTransforms.getUncompressedStream(
- originalSourceStream)));
+ uncompressedStream =
+ FileTransforms.getUncompressedStream(originalSourceStream);
+ decryptedStream = FileTransforms.getDecryptedStream(uncompressedStream);
+ inputStream = FileTransforms.getUncompressedStream(decryptedStream);
break;
case CRYPTED_COMPRESSED:
- inputStream = FileTransforms.getUncompressedStream(
- FileTransforms.getDecryptedStream(originalSourceStream));
+ decryptedStream = FileTransforms.getDecryptedStream(originalSourceStream);
+ inputStream = FileTransforms.getUncompressedStream(decryptedStream);
break;
case COMPRESSED_CRYPTED:
- inputStream = FileTransforms.getDecryptedStream(
- FileTransforms.getUncompressedStream(originalSourceStream));
+ uncompressedStream =
+ FileTransforms.getUncompressedStream(originalSourceStream);
+ inputStream = FileTransforms.getDecryptedStream(uncompressedStream);
break;
case COMPRESSED_ONLY:
inputStream = FileTransforms.getUncompressedStream(originalSourceStream);
@@ -195,8 +199,9 @@ public final class BinaryDictionaryFileDumper {
case NONE:
inputStream = originalSourceStream;
break;
- }
- checkMagicAndCopyFileTo(new BufferedInputStream(inputStream), outputStream);
+ }
+ bufferedStream = new BufferedInputStream(inputStream);
+ checkMagicAndCopyFileTo(bufferedStream, outputStream);
outputStream.flush();
outputStream.close();
final File finalFile = new File(finalFileName);
@@ -228,8 +233,11 @@ public final class BinaryDictionaryFileDumper {
try {
// inputStream.close() will close afd, we should not call afd.close().
if (null != inputStream) inputStream.close();
+ if (null != uncompressedStream) uncompressedStream.close();
+ if (null != decryptedStream) decryptedStream.close();
+ if (null != bufferedStream) bufferedStream.close();
} catch (Exception e) {
- Log.e(TAG, "Exception while closing a cross-process file descriptor : " + e);
+ Log.e(TAG, "Exception while closing a file descriptor : " + e);
}
try {
if (null != outputStream) outputStream.close();