From 8ba3b3ac8b9e2ccb611deec4eaf32abc372ac6cf Mon Sep 17 00:00:00 2001 From: mguessan Date: Thu, 26 Apr 2007 10:54:42 +0000 Subject: [PATCH] Fix regression in stream handling : do not close quoteOs, this would close the underlying stream git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@53 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/exchange/ExchangeSession.java | 13 +++---------- src/test/davmail/exchange/TestExchangeSession.java | 2 +- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/java/davmail/exchange/ExchangeSession.java b/src/java/davmail/exchange/ExchangeSession.java index 8de659bd..2ee71f68 100644 --- a/src/java/davmail/exchange/ExchangeSession.java +++ b/src/java/davmail/exchange/ExchangeSession.java @@ -928,11 +928,13 @@ public class ExchangeSession { } protected void writeAttachment(OutputStream os, MimeHeader mimeHeader, Attachment attachment) throws IOException { - OutputStream quotedOs = null; try { + // quotedOs must not be closed : this would close the underlying outputstream + OutputStream quotedOs; try { // try another base64Encoder implementation if ("base64".equalsIgnoreCase(mimeHeader.contentTransferEncoding)) { + //noinspection IOResourceOpenedButNotSafelyClosed quotedOs = new BASE64EncoderStream(os); } else { quotedOs = (MimeUtility.encode(os, mimeHeader.contentTransferEncoding)); @@ -989,7 +991,6 @@ public class ExchangeSession { } } } - bis.close(); quotedOs.flush(); os.write('\r'); os.write('\n'); @@ -997,14 +998,6 @@ public class ExchangeSession { } catch (HttpException e) { throw new IOException(e + " " + e.getMessage()); - } finally { - if (quotedOs != null) { - try { - quotedOs.close(); - } catch (IOException e) { - // ignore - } - } } } diff --git a/src/test/davmail/exchange/TestExchangeSession.java b/src/test/davmail/exchange/TestExchangeSession.java index ed1b0506..626bc47e 100644 --- a/src/test/davmail/exchange/TestExchangeSession.java +++ b/src/test/davmail/exchange/TestExchangeSession.java @@ -14,7 +14,7 @@ public class TestExchangeSession { ExchangeSession session = new ExchangeSession(); // test auth try { - session.checkConfig(); + ExchangeSession.checkConfig(); session.login(argv[1], argv[2]); ExchangeSession.Folder folder = session.selectFolder(argv[3]);