diff options
author | Jorge Ruesga <jorge@ruesga.com> | 2015-05-20 01:15:49 +0200 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-10-18 14:13:46 -0700 |
commit | be5ba85cb508b851d8d5ff2bde9229f53af28722 (patch) | |
tree | 0ff31f1753cad98d42d03754bd31626442e77665 /src | |
parent | a9923baa655018602cdc9db5676dbb6eb155c1cc (diff) | |
download | android_packages_apps_UnifiedEmail-be5ba85cb508b851d8d5ff2bde9229f53af28722.tar.gz android_packages_apps_UnifiedEmail-be5ba85cb508b851d8d5ff2bde9229f53af28722.tar.bz2 android_packages_apps_UnifiedEmail-be5ba85cb508b851d8d5ff2bde9229f53af28722.zip |
email: do not close the input attachment buffer in Conversion#parseBodyFields
Currently, Conversion#parseBodyFields close the inputstream associated to
the temporary binary attachment stream after reading the textContent and the snipet.
This will prevent to copy to the destination database folder for inline attachments.
Just let the attachment to be closed for LegacyConversions#addOneAttachment method.
Requires: http://review.cyanogenmod.org/#/c/98128
Change-Id: Ibe41e1896d6867cae0ee080f1556d7fa9e88966d
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/emailcommon/internet/MimeUtility.java | 6 | ||||
-rw-r--r-- | src/com/android/emailcommon/utility/ConversionUtilities.java | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/com/android/emailcommon/internet/MimeUtility.java b/src/com/android/emailcommon/internet/MimeUtility.java index 7e1c1b97f..84350dd34 100644 --- a/src/com/android/emailcommon/internet/MimeUtility.java +++ b/src/com/android/emailcommon/internet/MimeUtility.java @@ -222,7 +222,7 @@ public class MimeUtility { * @return a String containing the converted text in the body, or null if there was no text * or an error during conversion. */ - public static String getTextFromPart(Part part) { + public static String getTextFromPart(Part part, boolean closeInput) { try { if (part != null && part.getBody() != null) { InputStream in = part.getBody().getInputStream(); @@ -234,7 +234,9 @@ public class MimeUtility { */ ByteArrayOutputStream out = new ByteArrayOutputStream(); IOUtils.copy(in, out); - in.close(); + if (closeInput) { + in.close(); + } in = null; // we want all of our memory back, and close might not release /* diff --git a/src/com/android/emailcommon/utility/ConversionUtilities.java b/src/com/android/emailcommon/utility/ConversionUtilities.java index 7bfe7d967..790255399 100644 --- a/src/com/android/emailcommon/utility/ConversionUtilities.java +++ b/src/com/android/emailcommon/utility/ConversionUtilities.java @@ -62,13 +62,21 @@ public class ConversionUtilities { * Parse body text (plain and/or HTML) from MimeMessage to {@link BodyFieldData}. */ public static BodyFieldData parseBodyFields(ArrayList<Part> viewables) + throws MessagingException { + return parseBodyFields(viewables, true); + } + + /** + * Parse body text (plain and/or HTML) from MimeMessage to {@link BodyFieldData}. + */ + public static BodyFieldData parseBodyFields(ArrayList<Part> viewables, boolean closeInputs) throws MessagingException { final BodyFieldData data = new BodyFieldData(); StringBuffer sbHtml = null; StringBuffer sbText = null; for (Part viewable : viewables) { - String text = MimeUtility.getTextFromPart(viewable); + String text = MimeUtility.getTextFromPart(viewable, closeInputs); // Deploy text as marked by the various tags boolean isHtml = "text/html".equalsIgnoreCase(viewable.getMimeType()); |