From e374538110fe3083f000b83f74451568941cd23a Mon Sep 17 00:00:00 2001 From: cketti Date: Mon, 8 Dec 2014 17:38:30 +0100 Subject: [PATCH] Store multi part preamble as byte array --- src/com/fsck/k9/mail/internet/MimeMessage.java | 9 +++------ src/com/fsck/k9/mail/internet/MimeMultipart.java | 10 +++------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/com/fsck/k9/mail/internet/MimeMessage.java b/src/com/fsck/k9/mail/internet/MimeMessage.java index 857d1ad76..a71e2a543 100644 --- a/src/com/fsck/k9/mail/internet/MimeMessage.java +++ b/src/com/fsck/k9/mail/internet/MimeMessage.java @@ -567,12 +567,9 @@ public class MimeMessage extends Message { @Override public void preamble(InputStream is) throws IOException { expect(MimeMultipart.class); - StringBuilder sb = new StringBuilder(); - int b; - while ((b = is.read()) != -1) { - sb.append((char)b); - } - ((MimeMultipart)stack.peek()).setPreamble(sb.toString()); + ByteArrayOutputStream preamble = new ByteArrayOutputStream(); + IOUtils.copy(is, preamble); + ((MimeMultipart)stack.peek()).setPreamble(preamble.toByteArray()); } @Override diff --git a/src/com/fsck/k9/mail/internet/MimeMultipart.java b/src/com/fsck/k9/mail/internet/MimeMultipart.java index 6775fdaea..d6ce4377a 100644 --- a/src/com/fsck/k9/mail/internet/MimeMultipart.java +++ b/src/com/fsck/k9/mail/internet/MimeMultipart.java @@ -10,7 +10,7 @@ import java.util.Locale; import java.util.Random; public class MimeMultipart extends Multipart { - private String mPreamble; + private byte[] mPreamble; private byte[] mEpilogue; private String mContentType; @@ -46,11 +46,7 @@ public class MimeMultipart extends Multipart { return sb.toString().toUpperCase(Locale.US); } - public String getPreamble() { - return mPreamble; - } - - public void setPreamble(String preamble) { + public void setPreamble(byte[] preamble) { this.mPreamble = preamble; } @@ -72,7 +68,7 @@ public class MimeMultipart extends Multipart { BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out), 1024); if (mPreamble != null) { - writer.write(mPreamble); + out.write(mPreamble); writer.write("\r\n"); }