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

JIRA Service Desk mail handler fails to process email replies to email notifications in some circumstances

    XMLWordPrintable

Details

    Description

      I believe this might be a bug in the Service Desk Mail handler. If a user responds to a JIRA Service Desk email notification using Touchdown for Android that's connected through Exchange Active Sync (EAS), an exception will be recorded in the log files and the comment will not be added to the issue.

      Note: Touchdown is a common Android application for interfacing with Microsoft Exchange for email, calendar, and contacts.

      As a result, the issue is not updated with the comment and the assignee does not know the user commented. As you might imagine, that could lead to operational issues in responding to user requests in a timely manner.

      To reproduce the issue, do the following:
      1. Service Desk Customer submits a request through the customer portal
      2. Service Desk Team adds comment to request
      3. Service Desk Customer receives email notification containing comment and replies from an Android device using Touchdown that's connected through EAS
      4. Log file will contain error message indicating the mail handler "failed due to binary incompatibilities"

      I've included the error below. A non-trivial number of our users use Touchdown, so it's a significant issue for us. Our current workaround is to monitor all emails that come into the IMAP folder and verify that the comment was created in the issue.

      2014-09-30 15:39:50,894 atlassian-scheduler-quartz1.clustered_Worker-2 ERROR ServiceRunner     [atlassian.scheduler.core.JobLauncher] Scheduled job with ID 'com.atlassian.jira.service.JiraService:14200' failed due to binary incompatibilities
      java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
      	at com.atlassian.servicedesk.squalor.email.ServiceDeskMailUtils.stripQuotedLines(ServiceDeskMailUtils.java:182)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailManager.addCommentFromEmail(IncomingEmailManager.scala:54)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService$$anonfun$addCommentIntoIssue$1$$anonfun$apply$8$$anonfun$apply$9$$anonfun$apply$10.apply(IncomingEmailService.scala:81)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService$$anonfun$addCommentIntoIssue$1$$anonfun$apply$8$$anonfun$apply$9$$anonfun$apply$10.apply(IncomingEmailService.scala:81)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService$$anonfun$com$$$$$b964c765cf7c52d46b2e78e0cf72fae$$$$inEmailContext$1$$anonfun$apply$15.apply(IncomingEmailService.scala:119)
      	at com.atlassian.servicedesk.internal.utils.context.PortalContextUtil$.inPortalContextWithParam(PortalContextUtil.scala:32)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService$$anonfun$com$atlassian$servicedesk$internal$feature$incomingemail$IncomingEmailService$$inEmailContext$1.apply(IncomingEmailService.scala:118)
      	at com.atlassian.servicedesk.internal.utils.context.AuthenticationContextUtil$.runAsUser(AuthenticationContextUtil.scala:15)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService.com$atlassian$servicedesk$internal$feature$incomingemail$IncomingEmailService$$inEmailContext(IncomingEmailService.scala:116)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService$$anonfun$addCommentIntoIssue$1$$anonfun$apply$8$$anonfun$apply$9.apply(IncomingEmailService.scala:79)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService$$anonfun$addCommentIntoIssue$1$$anonfun$apply$8$$anonfun$apply$9.apply(IncomingEmailService.scala:78)
      	at scala.util.Either$RightProjection.flatMap(Either.scala:523)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService$$anonfun$addCommentIntoIssue$1$$anonfun$apply$8.apply(IncomingEmailService.scala:78)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService$$anonfun$addCommentIntoIssue$1$$anonfun$apply$8.apply(IncomingEmailService.scala:77)
      	at scala.util.Either$RightProjection.flatMap(Either.scala:523)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService$$anonfun$addCommentIntoIssue$1.apply(IncomingEmailService.scala:77)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService$$anonfun$addCommentIntoIssue$1.apply(IncomingEmailService.scala:76)
      	at scala.util.Either$RightProjection.flatMap(Either.scala:523)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService.addCommentIntoIssue(IncomingEmailService.scala:76)
      	at com.atlassian.servicedesk.internal.feature.incomingemail.IncomingEmailService.processEmail(IncomingEmailService.scala:49)
      	at com.atlassian.servicedesk.internal.email.SDMailHandler.processMessage(SDMailHandler.java:36)
      	at com.atlassian.servicedesk.squalor.email.AbstractMailHandler.handleMessage(AbstractMailHandler.java:100)
      	at com.atlassian.servicedesk.squalor.email.SDMessageProcessor.execute(SDMessageProcessor.java:77)
      	at com.atlassian.servicedesk.squalor.email.ServiceDeskMailFetcherService.runImpl(ServiceDeskMailFetcherService.java:71)
      	at com.atlassian.jira.service.services.file.AbstractMessageHandlingService.run(AbstractMessageHandlingService.java:261)
      	at com.atlassian.jira.service.JiraServiceContainerImpl.run(JiraServiceContainerImpl.java:66)
      	at com.atlassian.jira.service.ServiceRunner.runService(ServiceRunner.java:75)
      	at com.atlassian.jira.service.ServiceRunner.runServiceId(ServiceRunner.java:53)
      	at com.atlassian.jira.service.ServiceRunner.runJob(ServiceRunner.java:36)
      	at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:135)
      	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)
      Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
      	at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:772)
      	at org.apache.felix.framework.ModuleImpl.access$200(ModuleImpl.java:73)
      	at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1690)
      	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
      	... 35 more
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              d3034a111042 SEI Information Technology
              Votes:
              4 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Backbone Issue Sync