Javamail - NullPointerException

O codigo envia o email normalmente somente texto. Quando eu incluo o codigo para anexar arquivo ele retorna esse erro. Alguém poderia ajudar?

...
if (mensagem.equals("")||email.equals("")) response.sendRedirect("erromail.jsp");

Properties props = new Properties();
props.setProperty("mail.transport.protocol","smtp");
props.setProperty("mail.host",smtpServer);
props.setProperty("mail.user",fromMail);

Session sessao = Session.getInstance(props);
sessao.setDebug(true);

MimeMessage message = new MimeMessage(sessao);

             message.setFrom( new InternetAddress(fromMail,fromName) );
             message.setRecipient(Message.RecipientType.TO, new InternetAddress(toMail,toName) );
             message.setSubject(assunto);

             // Adiciona o texto do corpo do email
             MimeBodyPart textPart = new MimeBodyPart();
             textPart.setContent(corpo);

             // Abre e anexa o arquivo
             MimeBodyPart attachFilePart = new MimeBodyPart();
             FileDataSource fds = new FileDataSource(fileToSend);
             attachFilePart.setDataHandler(new DataHandler(fds));
             attachFilePart.setFileName(fds.getName());
             
             // Monta a mensagem SMTP
             Multipart mp = new MimeMultipart();
             mp.addBodyPart(textPart);
             mp.addBodyPart(attachFilePart);
             message.setContent(mp);

             Transport.send(message);

             out.println("Email enviado!");
}
catch (MessagingException e) {
    out.println("Email nao pode ser enviado! " + e.getMessage());
}

org.apache.jasper.JasperException: Exception in JSP: enviar.jsp:63

60: mp.addBodyPart(attachFilePart);
61: message.setContent(mp);
62:
63: Transport.send(message);
64:
65: out.println(“email enviado!”);
66: }

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
sun.reflect.GeneratedMethodAccessor62.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
java.security.AccessController.doPrivileged(Native Method)
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:217)
java.security.AccessController.doPrivileged(Native Method)
br.ufsm.cpd.commons.web.security.SecurityFilter.doFilter(SecurityFilter.java:168)
br.ufsm.cpd.commons.web.HttpFilter.doFilter(HttpFilter.java:89)
sun.reflect.GeneratedMethodAccessor67.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:217)

root cause

java.lang.NullPointerException
javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:115)
javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:136)
javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:981)
javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:195)
javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1809)
javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1785)
javax.mail.Transport.send(Transport.java:74)
org.apache.jsp.FaleConosco.javamail_jsp._jspService(javamail_jsp.java:113)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
sun.reflect.GeneratedMethodAccessor62.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161)
java.security.AccessController.doPrivileged(Native Method)
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
sun.reflect.GeneratedMethodAccessor74.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:217)
java.security.AccessController.doPrivileged(Native Method)
br.ufsm.cpd.commons.web.security.SecurityFilter.doFilter(SecurityFilter.java:168)
br.ufsm.cpd.commons.web.HttpFilter.doFilter(HttpFilter.java:89)
sun.reflect.GeneratedMethodAccessor67.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:217)

NullPointerException acontece quando

MinhaClasse variavel = null; variavel.algumMetodo(parametros);

Eu começaria investigando isso. Ja usou um debugger nessa aplicação? Ou pelo menos um “passei por aqui, variavel X tem valor ‘…’” ?