summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJorge Ruesga <jorge@ruesga.com>2015-05-20 01:15:49 +0200
committerSteve Kondik <steve@cyngn.com>2015-10-18 14:13:46 -0700
commitbe5ba85cb508b851d8d5ff2bde9229f53af28722 (patch)
tree0ff31f1753cad98d42d03754bd31626442e77665 /src
parenta9923baa655018602cdc9db5676dbb6eb155c1cc (diff)
downloadandroid_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.java6
-rw-r--r--src/com/android/emailcommon/utility/ConversionUtilities.java10
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());