summaryrefslogtreecommitdiffstats
path: root/provider_src/com/android/email/provider/Utilities.java
diff options
context:
space:
mode:
Diffstat (limited to 'provider_src/com/android/email/provider/Utilities.java')
-rw-r--r--provider_src/com/android/email/provider/Utilities.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/provider_src/com/android/email/provider/Utilities.java b/provider_src/com/android/email/provider/Utilities.java
index c3b7ec93a..e28c873c4 100644
--- a/provider_src/com/android/email/provider/Utilities.java
+++ b/provider_src/com/android/email/provider/Utilities.java
@@ -40,6 +40,7 @@ import com.android.emailcommon.utility.ConversionUtilities;
import com.android.mail.utils.LogUtils;
import com.android.mail.utils.Utils;
+import java.io.InputStream;
import java.io.IOException;
import java.util.ArrayList;
@@ -118,8 +119,9 @@ public class Utilities {
ArrayList<Part> attachments = new ArrayList<Part>();
MimeUtility.collectParts(message, viewables, attachments);
+ // Don't close the viewables attachment InputStream yet
final ConversionUtilities.BodyFieldData data =
- ConversionUtilities.parseBodyFields(viewables);
+ ConversionUtilities.parseBodyFields(viewables, false);
// set body and local message values
localMessage.setFlags(data.isQuotedReply, data.isQuotedForward);
@@ -166,6 +168,21 @@ public class Utilities {
localMessage.mFlagAttachment = true;
}
+ // Close any parts that may still be open
+ for (final Part part : viewables) {
+ if (part.getBody() == null) {
+ continue;
+ }
+ try {
+ InputStream is = part.getBody().getInputStream();
+ if (is != null) {
+ is.close();
+ }
+ } catch (IOException io) {
+ // Ignore
+ }
+ }
+
// One last update of message with two updated flags
localMessage.mFlagLoaded = loadStatus;