You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Thomas Neidhart (JIRA)" <ji...@apache.org> on 2015/06/24 15:08:05 UTC
[jira] [Commented] (EMAIL-155) Not Able To Parse Attachments
[ https://issues.apache.org/jira/browse/EMAIL-155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14599364#comment-14599364 ]
Thomas Neidhart commented on EMAIL-155:
---------------------------------------
That's strange, according to the JavaMail specification (see https://javamail.java.net/nonav/docs/api/javax/mail/Part.html#getContent--), the object as returned by Part#getContent() is always a subclass of Multipart if the content type is multipart.
> 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)