Apache Commons Mail: javax.mail.internet.ParseException: Expected MIME type, got null

Olá,

Estou procurando aqui uma solução para isso, se alguém conhece essas classes do apache commons mail (não achei nada referente a isso na internet) e já viu problema parecido poderia dar uma forcinha aqui?

O Apache commons mail tem, nos anexos, ele cria quando você usa um File ou URL, um FileDataSource / URLDataSource respectivamente, para ler o anexo e incluir no mail. Eu extendi a classe DataSource, implementando o InputStream para trabalhar com um byte[] (visto que estou trabalhando com um BLOB no banco de dados, não quero gerar um arquivo em disco), e quando vou dar um send() no email ele dispara:

Exception in thread "main" org.apache.commons.mail.EmailException: Sending the email to the following server failed : mail.hecate.com.br:25 at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242) at org.apache.commons.mail.Email.send(Email.java:1267) at teste.Teste.main(Teste.java:41) Caused by: javax.mail.internet.ParseException: Expected MIME type, got null at javax.mail.internet.ContentType.<init>(ContentType.java:95) at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1331) at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1021) at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:419) at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1354) at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2107) at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2075) at javax.mail.Transport.send(Transport.java:123) at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1232) ... 2 more Java Result: 1

(esse é o stack trace completo de uma aplicação de teste que coloquei só o envio de email para mostrar aqui o stack trace)

Estava olhando o código de attach da classe Email do apache commons, e acredito que seja na parte que ele cria um “BodyPart”, mas ainda não consegui encontrar isso. E ainda não estudei diretamente as classes de envio de email do Java EE (só pelo pacote do commons).

esquece pessoal, problema de BIOS… Sábado a noite… cabeça em outro lugar…

Estava faltando o setContentType no meu DataSource.
Por exemplo.

        ds.setContentType("application/pdf");