You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Petr Osipov (JIRA)" <ji...@apache.org> on 2015/06/24 14:51:04 UTC

[jira] [Created] (EMAIL-155) Not Able To Parse Attachments

Petr Osipov created EMAIL-155:
---------------------------------

             Summary: Not Able To Parse Attachments
                 Key: EMAIL-155
                 URL: https://issues.apache.org/jira/browse/EMAIL-155
             Project: Commons Email
          Issue Type: Bug
         Environment: org.apache.commons:commons-email:1.4
            Reporter: Petr Osipov
            Priority: Critical


h4. Scenario
# Sent an email from Microsoft Web UI,
# When code tries to parse
{code}
    public DataSource getAttachment(String username, MimeMessage mimeMessage) throws Exception {
        MimeMessageParser messageParser = new MimeMessageParser(mimeMessage);
        messageParser.parse();
        // further code
}
{code}
An exception is thrown
{noformat}
java.lang.ClassCastException: javax.mail.util.SharedByteArrayInputStream cannot be cast to javax.mail.Multipart
	at org.apache.commons.mail.util.MimeMessageParser.parse(MimeMessageParser.java:195)
	at org.apache.commons.mail.util.MimeMessageParser.parse(MimeMessageParser.java:96)
{noformat}

Probably int the wild casting to javax.mail.Multipart in MimeMessageParser is a too brave step
{code}
                if (isMimeType(part, "multipart/*"))
                {
                    this.isMultiPart = true;
                    final Multipart mp = (Multipart) part.getContent();
                    final int count = mp.getCount();

                    // iterate over all MimeBodyPart

                    for (int i = 0; i < count; i++)
                    {
                        parse(mp, (MimeBodyPart) mp.getBodyPart(i));
                    }
                }
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)