-
Bug
-
Resolution: Fixed
-
Medium
-
2.0.1
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
Form Name |
---|