Malformed Content-Disposition causes emails not to be processed

XMLWordPrintable

    • 3
    • Severity 3 - Minor
    • 0

      Summary

      An email that has a Content-Disposition but no value for that will fail to be processed by the Jira Core Mail Handler (configured in ⚙ > System > Incoming Mail), and the Service Desk Mail Handler (configured in Project Settings > Email Requests).

      • When using the Jira Core Mail Handler, the following error will show in the logs:
        2019-09-11 11:22:00,016 WARN [] Caesium-1-1 anonymous    Test Test[/Users/jrey/Documents/AtlassianRun/home/jira8.1.0/import/mail/test]: Unable to create issue with message.
        javax.mail.internet.ParseException: Expected disposition, got null
        	at javax.mail.internet.ContentDisposition.<init>(ContentDisposition.java:94) [javax.mail-api-1.6.0.jar:1.6.0]
        	at javax.mail.internet.MimeBodyPart.getDisposition(MimeBodyPart.java:1229) [javax.mail-api-1.6.0.jar:1.6.0]
        	at javax.mail.internet.MimeBodyPart.getDisposition(MimeBodyPart.java:322) [javax.mail-api-1.6.0.jar:1.6.0]
        	at com.atlassian.mail.MailUtils.getFirstInlinePartWithMimeType(MailUtils.java:609) [atlassian-mail-5.0.0.jar:?]
        	at com.atlassian.mail.MailUtils.getBodyFromMultipart(MailUtils.java:520) [atlassian-mail-5.0.0.jar:?]
        	at com.atlassian.mail.MailUtils.getBodyFromMultipart(MailUtils.java:502) [atlassian-mail-5.0.0.jar:?]
        	at com.atlassian.mail.MailUtils.internalGetBody(MailUtils.java:192) [atlassian-mail-5.0.0.jar:?]
        	at com.atlassian.mail.MailUtils.getBody(MailUtils.java:177) [atlassian-mail-5.0.0.jar:?]
        	at com.atlassian.mail.MailUtils.getBody(MailUtils.java:170) [atlassian-mail-5.0.0.jar:?]
        	at com.atlassian.jira.plugins.mail.handlers.CreateIssueHandler.getDescription(CreateIssueHandler.java:408) [?:?]
        	at com.atlassian.jira.plugins.mail.handlers.CreateIssueHandler.handleMessage(CreateIssueHandler.java:196) [?:?]
        	at com.atlassian.jira.plugins.mail.handlers.CreateOrCommentHandler.handleMessage(CreateOrCommentHandler.java:114) [?:?]
        	at com.atlassian.jira.service.services.file.FileService.runImpl(FileService.java:132) [classes/:?]
        	at com.atlassian.jira.service.services.file.AbstractMessageHandlingService.run(AbstractMessageHandlingService.java:229) [jira-api-8.1.0.jar:?]
        	at com.atlassian.jira.service.JiraServiceContainerImpl.run(JiraServiceContainerImpl.java:68) [classes/:?]
        	at com.atlassian.jira.service.ServiceRunner.runService(ServiceRunner.java:62) [classes/:?]
        	at com.atlassian.jira.service.ServiceRunner.runServiceId(ServiceRunner.java:44) [classes/:?]
        	at com.atlassian.jira.service.ServiceRunner.runJob(ServiceRunner.java:32) [classes/:?]
        	at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:134) [atlassian-scheduler-core-3.0.0.jar:?]
        	at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:106) [atlassian-scheduler-core-3.0.0.jar:?]
        
      • When using the Service Desk Mail Handler, the following error will show in the logs:
        2019-09-11 10:47:53,623 Caesium-1-4 WARN cihan.klingsporn@isr.de     [c.a.s.i.feature.emailchannel.IncomingEmailParser] Error processing email message
        javax.mail.internet.ParseException: Expected disposition, got null
        	at javax.mail.internet.ContentDisposition.<init>(ContentDisposition.java:94)
        	at javax.mail.internet.MimeBodyPart.getDisposition(MimeBodyPart.java:1229)
        	at javax.mail.internet.MimeBodyPart.getDisposition(MimeBodyPart.java:322)
        	at com.atlassian.mail.MailUtils.isAttachment(MailUtils.java:377)
        	at com.atlassian.mail.MailUtils.addAttachments(MailUtils.java:238)
        	at com.atlassian.mail.MailUtils.internalGetAttachments(MailUtils.java:226)
        	at com.atlassian.mail.MailUtils.getAttachments(MailUtils.java:218)
        	at com.atlassian.servicedesk.squalor.email.ServiceDeskMailUtils.getServiceDeskAttachments(ServiceDeskMailUtils.java:162)
        	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailParser.parse(IncomingEmailParser.java:79)
        	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailManagerImpl.lambda$createIssueInJiraContext$19(IncomingEmailManagerImpl.java:534)
        	at com.atlassian.pocketknife.step.EitherStep1.lambda$then$0(EitherStep1.java:23)
        	at io.atlassian.fugue.Either$RightProjection.flatMap(Either.java:937)
        	at io.atlassian.fugue.Either.flatMap(Either.java:231)
        	at com.atlassian.pocketknife.step.EitherStep1.then(EitherStep1.java:23)
        	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailManagerImpl.createIssueInJiraContext(IncomingEmailManagerImpl.java:534)
        	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailManagerImpl.createIssueFromEmail(IncomingEmailManagerImpl.java:209)
        	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailServiceImpl.createNewIssueWithRequestType(IncomingEmailServiceImpl.java:279)
        	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailServiceImpl.lambda$createNewIssueWithMailChannel$25(IncomingEmailServiceImpl.java:261)
        	at io.atlassian.fugue.Either$RightProjection.flatMap(Either.java:937)
        	at io.atlassian.fugue.Either.flatMap(Either.java:231)
        	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailServiceImpl.createNewIssueWithMailChannel(IncomingEmailServiceImpl.java:261)
        	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailServiceImpl.lambda$null$17(IncomingEmailServiceImpl.java:199)
        

      Notes

      The email in question looked like this:

      --0__=C5BB0AE8DF12DD0C8f9e8a93df938690918cC5BB0AE8DF12DD0C
      Content-type: multipart/related; 
      	Boundary="1__=C5BB0AE8DF12DD0C8f9e8a93df938690918cC5BB0AE8DF12DD0C"
      Content-Disposition: 
      
      --1__=C5BB0AE8DF12DD0C8f9e8a93df938690918cC5BB0AE8DF12DD0C
      Content-type: multipart/alternative; 
      	Boundary="2__=C5BB0AE8DF12DD0C8f9e8a93df938690918cC5BB0AE8DF12DD0C"
      
      --2__=C5BB0AE8DF12DD0C8f9e8a93df938690918cC5BB0AE8DF12DD0C
      Content-type: text/plain; charset=UTF-8
      Content-transfer-encoding: quoted-printable
      

      Either mail handler should handle emails like this in a sensible manner.

            Assignee:
            Unassigned
            Reporter:
            Nick Mason
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: