Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-12534

JIRA fails to add attachments with long filenames from RFC 2231-compliant mail clients

XMLWordPrintable

    • We collect Jira feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

      Mail clients like Thunderbird will break long attachment names up into multiple short lines, as per RFC 2231:

      Content-Type: application/pdf;
      name*0="alreallyreallyreallylongfilenamewithlogsoftextthatshouldlinewrap";
      name*1=".pdf"
      Content-Transfer-Encoding: base64
      Content-Disposition: inline;
      filename*0="alreallyreallyreallylongfilenamewithlogsoftextthatshouldline";
      filename*1="wrap.pdf"

      Unfortunately JavaMail (as of 1.4) does not support this aspect of RFC 2231. JIRA will fail to add the attachment, and in the logs prints something like:

      2007-04-11 17:48:28,604 JiraQuartzScheduler_Worker-3 DEBUG [service.util.handler.AbstractMessageHandler] part=javax.mail.internet.MimeBodyPart@13cd5b5
      2007-04-11 17:48:28,605 JiraQuartzScheduler_Worker-3 DEBUG [service.util.handler.AbstractMessageHandler] Filename=null, content type=application/pdf;^M
      name*0="alreallyreallyreallylongfilenamewithlogsoftextthatshouldlinewrap";^M
      name*1=".pdf", content=com.sun.mail.util.BASE64DecoderStream@f27b6e
      2007-04-11 17:48:28,605 JiraQuartzScheduler_Worker-3 WARN [jira.issue.managers.DefaultAttachmentManager] Cannot create attachment without a filename - inline content? See http://jira.atlassian.com/browse/JRA-10825 (file=tempattach34617dat).
      2007-04-11 17:48:28,605 JiraQuartzScheduler_Worker-3 DEBUG [service.util.handler.AbstractMessageHandler] Encountered an error creating the attachment null for issue TP-39
      2007-04-11 17:48:28,605 JiraQuartzScheduler_Worker-3 DEBUG [service.services.mail.MailFetcherService] Deleting Message: <461C92BC.1030609@atlassian.com>

      JavaMail may also to even parse the email, and can die with:

      2007-04-11 17:50:28,128 JiraQuartzScheduler_Worker-1 ERROR [service.util.handler.CreateIssueHandler] Could not create issue!
      javax.mail.internet.ParseException: Missing charset in encoded value: %61%6C%6C%79%6C%6F%6E%67%66%69%6C%65%6E%61%6D%65%77%69%74%68
          at javax.mail.internet.ParameterList.decodeValue(ParameterList.java:385)
          at javax.mail.internet.ParameterList.<init>(ParameterList.java:175)
          at javax.mail.internet.ContentDisposition.<init>(ContentDisposition.java:87)
          at javax.mail.internet.MimeBodyPart.getDisposition(MimeBodyPart.java:1039)
          at javax.mail.internet.MimeBodyPart.getDisposition(MimeBodyPart.java:299)
          at com.atlassian.jira.service.util.handler.AbstractMessageHandler.saveAttachment(AbstractMessageHandler.java:311)
          at com.atlassian.jira.service.util.handler.AbstractMessageHandler.handleMultipart(AbstractMessageHandler.java:295)
          at com.atlassian.jira.service.util.handler.AbstractMessageHandler.createAttachmentsForMessage(AbstractMessageHandler.java:243)
          at com.atlassian.jira.service.util.handler.CreateIssueHandler.handleMessage(CreateIssueHandler.java:202)
          at com.atlassian.jira.service.util.handler.CreateOrCommentHandler.handleMessage(CreateOrCommentHandler.java:115)
          at com.atlassian.jira.service.services.mail.MailFetcherService.run(MailFetcherService.java:190)
          at com.atlassian.jira.service.JiraServiceContainerImpl.run(JiraServiceContainerImpl.java:67)
          at com.atlassian.jira.service.ServiceRunner.execute(ServiceRunner.java:48)
          at org.quartz.core.JobRunShell.run(JobRunShell.java:191)
          at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:516)
      

      In this case, the mail is left in the queue, and you will see these stacktraces repeated in the logs every time the mail service triggers (usu. once a minute).

              Unassigned Unassigned
              7ee5c68a815f Jeff Turner
              Votes:
              3 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 4h
                  4h