Make sure the InputStream is always closed

Moving the code to create the OutputStream wrappers into the try-block ensures
that the InputStream is closed in case something goes wrong.
This commit is contained in:
cketti 2013-09-06 19:24:19 +02:00
parent 6cd52c123c
commit a7c9804995
2 changed files with 18 additions and 16 deletions

View file

@ -52,16 +52,17 @@ public class BinaryTempFileBody implements Body {
}
public void writeTo(OutputStream out) throws IOException, MessagingException {
boolean closeStream = false;
InputStream in = getInputStream();
if (MimeUtil.isBase64Encoding(mEncoding)) {
out = new Base64OutputStream(out);
closeStream = true;
} else if (MimeUtil.isQuotedPrintableEncoded(mEncoding)){
out = new QuotedPrintableOutputStream(out, false);
closeStream = true;
}
try {
boolean closeStream = false;
if (MimeUtil.isBase64Encoding(mEncoding)) {
out = new Base64OutputStream(out);
closeStream = true;
} else if (MimeUtil.isQuotedPrintableEncoded(mEncoding)){
out = new QuotedPrintableOutputStream(out, false);
closeStream = true;
}
try {
IOUtils.copy(in, out);
} finally {

View file

@ -4028,16 +4028,17 @@ public class LocalStore extends Store implements Serializable {
@Override
public void writeTo(OutputStream out) throws IOException, MessagingException {
boolean closeStream = false;
InputStream in = getInputStream();
if (MimeUtil.isBase64Encoding(mEncoding)) {
out = new Base64OutputStream(out);
closeStream = true;
} else if (MimeUtil.isQuotedPrintableEncoded(mEncoding)){
out = new QuotedPrintableOutputStream(out, false);
closeStream = true;
}
try {
boolean closeStream = false;
if (MimeUtil.isBase64Encoding(mEncoding)) {
out = new Base64OutputStream(out);
closeStream = true;
} else if (MimeUtil.isQuotedPrintableEncoded(mEncoding)){
out = new QuotedPrintableOutputStream(out, false);
closeStream = true;
}
try {
IOUtils.copy(in, out);
} finally {