Mail api e multpart

Salve!

to com o seguinte stack:

Erro: Envio Mensagem
javax.mail.MessagingException: IOException while sending message;
nested exception is:
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed;
boundary="----=_Part_0_12014584.1307542667803"
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1141)
at porto.SendMail.sendMailAnexo(SendMail.java:209)
at porto.Segura.main(Segura.java:39)
Caused by: javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed;
boundary="----=_Part_0_12014584.1307542667803"
at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:877)
at javax.activation.DataHandler.writeTo(DataHandler.java:302)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1476)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1772)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1099)
… 2 more

no código:

 public void sendMailAnexo(String from, String to, String subject, String message, String caminho) {
         try{
            Properties props = new Properties();
         
               
            props.put("mail.transport.protocol", "smtp"); //define protocolo de envio como SMTP
            props.put("mail.smtp.starttls.enable","true"); 
            props.put("mail.smtp.host", mailSMTPServer); //server SMTP do GMAIL
            props.put("mail.smtp.auth", "true"); //ativa autenticacao
            props.put("mail.smtp.user", from); //usuario ou seja, a conta que esta enviando o email (tem que ser do GMAIL)
            props.put("mail.debug", "true");
            props.put("mail.smtp.port", mailSMTPServerPort); //porta
            props.put("mail.smtp.socketFactory.port", mailSMTPServerPort); //mesma porta para o socket
            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.socketFactory.fallback", "false");
         
         //Cria um autenticador que sera usado a seguir
            SimpleAuth auth = null;
            auth = new SimpleAuth ("usuario","senha");
         
         //Session - objeto que ira realizar a conex�o com o servidor
         /*Como h� necessidade de autentica��o � criada uma autenticacao que
         * � responsavel por solicitar e retornar o usu�rio e senha para 
         * autentica��o */
            Session session = Session.getDefaultInstance(props, auth);
            session.setDebug(false); //Habilita o LOG das a��es executadas durante o envio do email
         
         //Objeto que cont�m a mensagem
            Message msg = new MimeMessage(session);
         
         
         
            MimeBodyPart messageBodyPart = new MimeBodyPart();
            MimeBodyPart messageBodyPart1 = new MimeBodyPart();
         
            messageBodyPart1.setText("");
          messageBodyPart1.setText(message);

            DataSource source = new FileDataSource(caminho);
         
            DataHandler DH = new DataHandler(source);
            messageBodyPart.setDataHandler(DH);
            messageBodyPart.setFileName(caminho);
         
            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(messageBodyPart);
            multipart.addBodyPart(messageBodyPart1);
         
         
            try {
            //Setando o destinat�rio
               msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
            //Setando a origem do email
               msg.setFrom(new InternetAddress(from));
            //Setando o assunto
               msg.setSubject(subject);
            //Setando o conte�do/corpo do email
               //msg.setContent(message,"text/plain");
            msg.setContent(multipart, "text/plain");
            } 
               catch (Exception e) {
                  System.out.println(">> Erro: Completar Mensagem");
                  e.printStackTrace();
               }
         
         //Objeto encarregado de enviar os dados para o email
            Transport tr;
            try {
               tr = session.getTransport("smtp"); //define smtp para transporte
            /*
            *  1 - define o servidor smtp
            *  2 - seu nome de usuario do gmail
            *  3 - sua senha do gmail
            */
               tr.connect(mailSMTPServer, "user", "senha");
               msg.saveChanges(); // don't forget this
            //envio da mensagem
               tr.sendMessage(msg, msg.getAllRecipients());
               tr.close();
            } 
               catch (Exception e) {
               // TODO Auto-generated catch block
                  System.out.println(">> Erro: Envio Mensagem");
                  e.printStackTrace();
               }
         }
            catch(Exception e){
               e.printStackTrace();
            }
      
      }
      
   }

No windows funciona, no linux da o erro de cima…
pesquisei, mas nao consegui achar solução… aparentemente é algum bug na biblioteca, q os caras corrigem na mao… o q fazer?

Estava com o mesmo problema, resolvi da seguinte forma ex:

DataSource src = new ByteArrayDataSource([array_bytes], "application/vnd.ms-excel");
mimeBodyPart.setDataHandler(new DataHandler(src));

Abs