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

Triggering notifications if a user has a certain avatar fails to send notification

    XMLWordPrintable

Details

    Description

      Issue Summary

      Notifications cannot be sent to users if the user triggering the notification is using a specific avatar.

      Environment

      Jira 8.0.2

      Steps to Reproduce

      1. Define a notification scheme so that comments on issues trigger a notification.
      2. Login as user_A.
      3. Change user_A's avatar to
      4. Add a comment to the ticket.

      Expected Results

      1. Notifications are sent to recipients.

      Actual Results

      The below exception is thrown in the atlassian-jira.log file:

      2019-07-18 17:10:00,144 Sending mailitem com.atlassian.jira.mail.IssueMailQueueItem@320199c6[issue=com.atlassian.jira.issue.IssueImpl@178cb6de[id=10023,summary=test1,key=ABC-1,created=2019-07-18 16:51:57.932,updated=2019-07-18 17:03:56.921,assignee=lenard(lenard),reporter=llee2(llee2)],remoteUser=lenard(lenard),notificationType=Current_Reporter,eventTypeId=6,templateId=6] ERROR anonymous    Mail Queue Service [c.a.jira.mail.MailingListCompiler] Failed adding mail for notification recipient: [email=llee2@atlassian.com, user=llee2(llee2)]
      java.lang.RuntimeException: java.lang.RuntimeException: org.apache.batik.transcoder.TranscoderException: null
      Enclosed Exception:
      null:-1
      Cannot find the referenced element:
      "#mask-2_13_"
      specified on the element <path> - may be a problem of 'id'
      	at com.atlassian.jira.avatar.AvatarTranscoderImpl.writeToFileIfEmpty(AvatarTranscoderImpl.java:110)
      	at com.atlassian.jira.avatar.AvatarTranscoderImpl.getOrCreateRasterizedAvatarFile(AvatarTranscoderImpl.java:45)
      	at com.atlassian.jira.avatar.AvatarManagerImpl.lambda$processAvatarData$1(AvatarManagerImpl.java:370)
      	at com.atlassian.jira.avatar.PngAvatarFormatPolicy.getData(PngAvatarFormatPolicy.java:36)
      	at com.atlassian.jira.avatar.AvatarManagerImpl.processAvatarData(AvatarManagerImpl.java:365)
      	at com.atlassian.jira.avatar.AvatarManagerImpl.readAvatarData(AvatarManagerImpl.java:473)
      	at com.atlassian.jira.mail.util.MailAttachments$TranscodedAvatarAttachment.prepareBodyPart(MailAttachments.java:430)
      	at com.atlassian.jira.mail.util.MailAttachments$AbstractAvatarAttachment.buildBodyPart(MailAttachments.java:330)
      	at com.atlassian.jira.mail.util.MailAttachmentsManagerImpl.buildMimeBodyPartFromMailAttachment(MailAttachmentsManagerImpl.java:241)
      	at com.atlassian.jira.mail.util.MailAttachmentsManagerImpl.lambda$buildAttachmentsBodyParts$0(MailAttachmentsManagerImpl.java:235)
      	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
      	at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1696)
      	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
      	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
      	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
      	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
      	at com.atlassian.jira.mail.util.MailAttachmentsManagerImpl.buildAttachmentsBodyParts(MailAttachmentsManagerImpl.java:237)
      	at com.atlassian.jira.mail.builder.EmailRenderer.buildMailWithAttachments(EmailRenderer.java:135)
      	at com.atlassian.jira.mail.builder.EmailRenderer.renderEmailBody(EmailRenderer.java:111)
      	at com.atlassian.jira.mail.builder.EmailRenderer.render(EmailRenderer.java:150)
      	at com.atlassian.jira.mail.builder.EmailBuilder.renderNow(EmailBuilder.java:155)
      	at com.atlassian.jira.mail.builder.EmailBuilder.renderNowAsQueueItem(EmailBuilder.java:145)
      	at com.atlassian.jira.mail.MailingListCompiler$1.evaluateEmailForRecipient(MailingListCompiler.java:336)
      	at com.atlassian.jira.mail.NotificationRecipientProcessor.evaluateEmails(NotificationRecipientProcessor.java:39)
      	at com.atlassian.jira.mail.MailingListCompiler.evaluateEmails(MailingListCompiler.java:267)
      	at com.atlassian.jira.mail.MailingListCompiler.access$300(MailingListCompiler.java:49)
      	at com.atlassian.jira.mail.MailingListCompiler$NotificationCompiler.lambda$addEmailsToQueue$0(MailingListCompiler.java:466)
      	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
      	at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1696)
      	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
      	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
      	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
      	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
      	at com.atlassian.jira.mail.MailingListCompiler$NotificationCompiler.addEmailsToQueue(MailingListCompiler.java:468)
      	at com.atlassian.jira.mail.MailingListCompiler$NotificationCompiler.sendLists(MailingListCompiler.java:438)
      	at com.atlassian.jira.mail.MailingListCompiler$NotificationCompiler.evaluateForEvent(MailingListCompiler.java:395)
      	at com.atlassian.jira.mail.MailingListCompiler.prepareEmail(MailingListCompiler.java:167)
      	at com.atlassian.jira.mail.MailingListCompiler.sendLists(MailingListCompiler.java:101)
      	at com.atlassian.jira.mail.IssueMailQueueItem.send(IssueMailQueueItem.java:128)
      	at com.atlassian.mail.queue.MailQueueImpl.sendBufferUnderLock(MailQueueImpl.java:103)
      	at com.atlassian.mail.queue.MailQueueImpl.sendBuffer(MailQueueImpl.java:56)
      	at com.atlassian.jira.mail.JiraMailQueue$1.apply(JiraMailQueue.java:51)
      	at com.atlassian.jira.mail.JiraMailQueue$1.apply(JiraMailQueue.java:48)
      	at com.atlassian.jira.util.velocity.DefaultVelocityRequestContextFactory.runWithStaticBaseUrl(DefaultVelocityRequestContextFactory.java:110)
      	at com.atlassian.jira.util.DefaultBaseUrl.runWithStaticBaseUrl(DefaultBaseUrl.java:50)
      	at com.atlassian.jira.mail.JiraMailQueue.sendBuffer(JiraMailQueue.java:48)
      	at com.atlassian.jira.service.services.mail.MailQueueService.run(MailQueueService.java:21)
      	at com.atlassian.jira.service.JiraServiceContainerImpl.run(JiraServiceContainerImpl.java:68)
      	at com.atlassian.jira.service.ServiceRunner.runService(ServiceRunner.java:62)
      	at com.atlassian.jira.service.ServiceRunner.runServiceId(ServiceRunner.java:44)
      	at com.atlassian.jira.service.ServiceRunner.runJob(ServiceRunner.java:32)
      	at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:134)
      	at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:106)
      	at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:90)
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.launchJob(CaesiumSchedulerService.java:435)
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeLocalJob(CaesiumSchedulerService.java:402)
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:380)
      	at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(SchedulerQueueWorker.java:66)
      	at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(SchedulerQueueWorker.java:60)
      	at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.run(SchedulerQueueWorker.java:35)
      	at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.RuntimeException: org.apache.batik.transcoder.TranscoderException: null
      Enclosed Exception:
      null:-1
      Cannot find the referenced element:
      "#mask-2_13_"
      specified on the element <path> - may be a problem of 'id'
      	at com.atlassian.jira.avatar.AvatarTranscoderImpl.lambda$getOrCreateRasterizedAvatarFile$0(AvatarTranscoderImpl.java:46)
      	at com.atlassian.jira.avatar.AvatarTranscoderImpl.writeToFileIfEmpty(AvatarTranscoderImpl.java:103)
      	... 62 more
      Caused by: org.apache.batik.transcoder.TranscoderException: null
      Enclosed Exception:
      null:-1
      Cannot find the referenced element:
      "#mask-2_13_"
      specified on the element <path> - may be a problem of 'id'
      	at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92)
      	at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
      	at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)
      	at com.atlassian.jira.avatar.AvatarTranscoderImpl.transcodeAndTag(AvatarTranscoderImpl.java:80)
      	... 64 more
      

      Workaround

      Use a different avatar.

      Attachments

        Issue Links

          Activity

            People

              mciesielski2@atlassian.com Michal Ciesielski
              llee2@atlassian.com Lenard Lee
              Votes:
              2 Vote for this issue
              Watchers:
              27 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: