From ab536ded32a180add045fc4e36cfd6fc4d9da0ed Mon Sep 17 00:00:00 2001 From: mguessan Date: Mon, 16 Jul 2012 22:30:33 +0000 Subject: [PATCH] IMAP: improve bodystructure error handling git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@1978 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/imap/ImapConnection.java | 25 +++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/java/davmail/imap/ImapConnection.java b/src/java/davmail/imap/ImapConnection.java index d54ba818..a06146c3 100644 --- a/src/java/davmail/imap/ImapConnection.java +++ b/src/java/davmail/imap/ImapConnection.java @@ -48,8 +48,7 @@ import java.text.SimpleDateFormat; import java.util.*; /** - * Dav Gateway smtp connection implementation. - * Still alpha code : need to find a way to handle message ids + * Dav Gateway IMAP connection implementation. */ public class ImapConnection extends AbstractConnection { private static final Logger LOGGER = Logger.getLogger(ImapConnection.class); @@ -1068,12 +1067,22 @@ public class ImapConnection extends AbstractConnection { for (int i = 0; i < multiPart.getCount(); i++) { MimeBodyPart bodyPart = (MimeBodyPart) multiPart.getBodyPart(i); - Object mimeBody = bodyPart.getContent(); - if (mimeBody instanceof MimeMultipart) { - appendBodyStructure(buffer, (MimeMultipart) mimeBody); - } else { - // no multipart, single body - appendBodyStructure(buffer, bodyPart); + try { + Object mimeBody = bodyPart.getContent(); + if (mimeBody instanceof MimeMultipart) { + appendBodyStructure(buffer, (MimeMultipart) mimeBody); + } else { + // no multipart, single body + appendBodyStructure(buffer, bodyPart); + } + } catch (UnsupportedEncodingException e) { + LOGGER.warn(e); + // failover: send default bodystructure + buffer.append("(\"TEXT\" \"PLAIN\" (\"CHARSET\" \"US-ASCII\") NIL NIL NIL NIL NIL)"); + } catch (MessagingException me) { + DavGatewayTray.warn(me); + // failover: send default bodystructure + buffer.append("(\"TEXT\" \"PLAIN\" (\"CHARSET\" \"US-ASCII\") NIL NIL NIL NIL NIL)"); } } int slashIndex = multiPart.getContentType().indexOf('/');