diff options
Diffstat (limited to 'provider_src/com/android/email/provider/Utilities.java')
-rw-r--r-- | provider_src/com/android/email/provider/Utilities.java | 19 |
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; |