Uploaded image for project: 'Jira Service Management Data Center'
  1. Jira Service Management Data Center
  2. JSDSERVER-2264

Attempting to create a mail that is missing a subject throws a NullPointerException in the JIRA Service Desk Mail Handler

    XMLWordPrintable

Details

    Description

      Summary

      In certain situations it's possible to have a mail that's missing a subject, for example including a mail as an attachment in the body of an existing mail using Outlook.

      Steps to Reproduce

      1. Send a mail to a JIRA Service Desk enabled mail handler inbox with an email attached to the body.

      Expected Results

      The mail is successfully created.

      Actual Results

      The below NPE is thrown:

      2015-08-25 14:32:41,819 ERROR [] atlassian-scheduler-quartz1.clustered_Worker-2 anonymous     Exception when MailHandlerWorker handles message: 
      java.lang.NullPointerException
      	at com.atlassian.servicedesk.squalor.email.ServiceDeskMailUtils.getAttachmentFilename(ServiceDeskMailUtils.java:368)
      	at com.atlassian.servicedesk.squalor.email.ServiceDeskMailUtils.addAttachments(ServiceDeskMailUtils.java:322)
      	at com.atlassian.servicedesk.squalor.email.ServiceDeskMailUtils.getAttachments(ServiceDeskMailUtils.java:272)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailManager.createIssueInJiraContext(IncomingEmailManager.scala:189)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailManager.createIssueFromEmail(IncomingEmailManager.scala:169)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$createNewIssueWithMailChannel$2.apply(IncomingEmailService.scala:132)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$createNewIssueWithMailChannel$2.apply(IncomingEmailService.scala:131)
      	at scalaz.$bslash$div$class.flatMap(Either.scala:117)
      	at scalaz.$bslash$div$minus.flatMap(Either.scala:283)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService.createNewIssueWithMailChannel(IncomingEmailService.scala:131)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$com$$$$$bd7392fa9edbf4ccadfa49f2f55a2a$$$$wOrCommentOnIssueWithMailChannel$1.apply(IncomingEmailService.scala:97)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$com$$$$$bd7392fa9edbf4ccadfa49f2f55a2a$$$$wOrCommentOnIssueWithMailChannel$1.apply(IncomingEmailService.scala:95)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$com$$$$$d05034469980e826573cdcd0f9711981$$$$inEmailContext$1$$anonfun$apply$11.apply(IncomingEmailService.scala:145)
      	at com.atlassian.servicedesk.internal.utils.context.PortalContextUtil$.inPortalContext(PortalContextUtil.scala:23)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$com$atlassian$servicedesk$internal$feature$emailchannel$IncomingEmailService$$inEmailContext$1.apply(IncomingEmailService.scala:144)
      	at com.atlassian.servicedesk.internal.utils.context.AuthenticationContextUtil$.runAsUser(AuthenticationContextUtil.scala:15)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService.com$atlassian$servicedesk$internal$feature$emailchannel$IncomingEmailService$$inEmailContext(IncomingEmailService.scala:142)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService.com$atlassian$servicedesk$internal$feature$emailchannel$IncomingEmailService$$createNewOrCommentOnIssueWithMailChannel(IncomingEmailService.scala:95)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(IncomingEmailService.scala:75)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(IncomingEmailService.scala:74)
      	at scalaz.$bslash$div$class.flatMap(Either.scala:117)
      	at scalaz.$bslash$div$minus.flatMap(Either.scala:283)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$1$$anonfun$apply$1.apply(IncomingEmailService.scala:74)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$1$$anonfun$apply$1.apply(IncomingEmailService.scala:73)
      	at scalaz.$bslash$div$class.flatMap(Either.scala:117)
      	at scalaz.$bslash$div$minus.flatMap(Either.scala:283)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$1.apply(IncomingEmailService.scala:73)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$1.apply(IncomingEmailService.scala:72)
      	at scalaz.$bslash$div$class.flatMap(Either.scala:117)
      	at scalaz.$bslash$div$minus.flatMap(Either.scala:283)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService.processEmailWithMailChannel(IncomingEmailService.scala:72)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.emailplatform.handler.SDMailHandler.processMessage(SDMailHandler.scala:41)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.emailplatform.handler.SDMailHandler.handleNewMessage(SDMailHandler.scala:25)
      	at com.atlassian.jira.internal.mail.processor.feature.processor.MailHandlerWorker.handle(MailHandlerWorker.java:67)
      	at com.atlassian.jira.internal.mail.processor.feature.processor.MailProcessorWorker.processMailItem(MailProcessorWorker.java:149)
      	at com.atlassian.jira.internal.mail.processor.feature.processor.MailProcessorWorker.process(MailProcessorWorker.java:83)
      	at com.atlassian.jira.internal.mail.processor.feature.processor.MailProcessorService.run(MailProcessorService.java:41)
      	at com.atlassian.jira.internal.mail.processor.services.MailProcessorExecutor.run(MailProcessorExecutor.java:34)
      	at com.atlassian.jira.internal.mail.processor.services.AbstractMailExecutor.execute(AbstractMailExecutor.java:48)
      	at com.atlassian.jira.internal.mail.processor.services.MailJobRunner.runJob(MailJobRunner.java:38)
      	at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:136)
      	at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:101)
      	at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:80)
      	at com.atlassian.scheduler.quartz1.Quartz1Job.execute(Quartz1Job.java:32)
      	at org.quartz.core.JobRunShell.run(JobRunShell.java:223)
      	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
      2015-08-25 14:41:41,844 ERROR [] atlassian-scheduler-quartz1.clustered_Worker-2 anonymous     Exception when MailHandlerWorker handles message: 
      java.lang.NullPointerException
      	at com.atlassian.servicedesk.squalor.email.ServiceDeskMailUtils.getAttachmentFilename(ServiceDeskMailUtils.java:368)
      	at com.atlassian.servicedesk.squalor.email.ServiceDeskMailUtils.addAttachments(ServiceDeskMailUtils.java:322)
      	at com.atlassian.servicedesk.squalor.email.ServiceDeskMailUtils.getAttachments(ServiceDeskMailUtils.java:272)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailManager.createIssueInJiraContext(IncomingEmailManager.scala:189)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailManager.createIssueFromEmail(IncomingEmailManager.scala:169)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$createNewIssueWithMailChannel$2.apply(IncomingEmailService.scala:132)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$createNewIssueWithMailChannel$2.apply(IncomingEmailService.scala:131)
      	at scalaz.$bslash$div$class.flatMap(Either.scala:117)
      	at scalaz.$bslash$div$minus.flatMap(Either.scala:283)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService.createNewIssueWithMailChannel(IncomingEmailService.scala:131)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$com$$$$$bd7392fa9edbf4ccadfa49f2f55a2a$$$$wOrCommentOnIssueWithMailChannel$1.apply(IncomingEmailService.scala:97)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$com$$$$$bd7392fa9edbf4ccadfa49f2f55a2a$$$$wOrCommentOnIssueWithMailChannel$1.apply(IncomingEmailService.scala:95)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$com$$$$$d05034469980e826573cdcd0f9711981$$$$inEmailContext$1$$anonfun$apply$11.apply(IncomingEmailService.scala:145)
      	at com.atlassian.servicedesk.internal.utils.context.PortalContextUtil$.inPortalContext(PortalContextUtil.scala:23)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$com$atlassian$servicedesk$internal$feature$emailchannel$IncomingEmailService$$inEmailContext$1.apply(IncomingEmailService.scala:144)
      	at com.atlassian.servicedesk.internal.utils.context.AuthenticationContextUtil$.runAsUser(AuthenticationContextUtil.scala:15)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService.com$atlassian$servicedesk$internal$feature$emailchannel$IncomingEmailService$$inEmailContext(IncomingEmailService.scala:142)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService.com$atlassian$servicedesk$internal$feature$emailchannel$IncomingEmailService$$createNewOrCommentOnIssueWithMailChannel(IncomingEmailService.scala:95)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(IncomingEmailService.scala:75)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$1$$anonfun$apply$1$$anonfun$apply$2.apply(IncomingEmailService.scala:74)
      	at scalaz.$bslash$div$class.flatMap(Either.scala:117)
      	at scalaz.$bslash$div$minus.flatMap(Either.scala:283)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$1$$anonfun$apply$1.apply(IncomingEmailService.scala:74)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$1$$anonfun$apply$1.apply(IncomingEmailService.scala:73)
      	at scalaz.$bslash$div$class.flatMap(Either.scala:117)
      	at scalaz.$bslash$div$minus.flatMap(Either.scala:283)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$1.apply(IncomingEmailService.scala:73)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService$$anonfun$1.apply(IncomingEmailService.scala:72)
      	at scalaz.$bslash$div$class.flatMap(Either.scala:117)
      	at scalaz.$bslash$div$minus.flatMap(Either.scala:283)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.IncomingEmailService.processEmailWithMailChannel(IncomingEmailService.scala:72)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.emailplatform.handler.SDMailHandler.processMessage(SDMailHandler.scala:41)
      	at com.atlassian.servicedesk.internal.feature.emailchannel.emailplatform.handler.SDMailHandler.handleNewMessage(SDMailHandler.scala:25)
      	at com.atlassian.jira.internal.mail.processor.feature.processor.MailHandlerWorker.handle(MailHandlerWorker.java:67)
      	at com.atlassian.jira.internal.mail.processor.feature.processor.MailProcessorWorker.processMailItem(MailProcessorWorker.java:149)
      	at com.atlassian.jira.internal.mail.processor.feature.processor.MailProcessorWorker.process(MailProcessorWorker.java:83)
      	at com.atlassian.jira.internal.mail.processor.feature.processor.MailProcessorService.run(MailProcessorService.java:41)
      	at com.atlassian.jira.internal.mail.processor.services.MailProcessorExecutor.run(MailProcessorExecutor.java:34)
      	at com.atlassian.jira.internal.mail.processor.services.AbstractMailExecutor.execute(AbstractMailExecutor.java:48)
      	at com.atlassian.jira.internal.mail.processor.services.MailJobRunner.runJob(MailJobRunner.java:38)
      	at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:136)
      	at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:101)
      	at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:80)
      	at com.atlassian.scheduler.quartz1.Quartz1Job.execute(Quartz1Job.java:32)
      	at org.quartz.core.JobRunShell.run(JobRunShell.java:223)
      	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
      

      Workaround

      There's no currently known workaround for this.

      Attachments

        Issue Links

          Activity

            People

              cnguyen Chuong Nam Nguyen (Inactive)
              dcurrie@atlassian.com Dave C
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Backbone Issue Sync