Script Runner Custom email error

Kevin Dalton October 16, 2015

Script Runner Custom Email

<p>
You have been assigned as a Tech Resource to $issue.issueType.name <a href="$baseUrl/browse/<% out << issue.key %>">$issue</a> with priority <% out << issue.priority?.name %>.
<br></br>
<% 
def rendererManager = com.atlassian.jira.component.ComponentAccessor.getComponent( com.atlassian.jira.issue.RendererManager.class)
def fieldLayoutItem = com.atlassian.jira.component.ComponentAccessor.getFieldLayoutManager().getFieldLayout(issue).getFieldLayoutItem("description")
def renderer = rendererManager.getRendererForField(fieldLayoutItem)
String desc = renderer.render(issue.description, null)
String description = "Description: " + desc 
%>
$description
<br></br>
Last Comment:<br>
<% out << componentManager.commentManager.getComments(issue)?.last()?.authorUser.displayName %> –
<% out << componentManager.commentManager.getComments(issue)?.last()?.body %>
</p>

 

Error

Exception in thread "Thread-6132" groovy.lang.GroovyRuntimeException: Failed to parse template script (your template may contain an error or be trying to use expressions not currently supported): startup failed:
GStringTemplateScript31.groovy: 2: unexpected char: '\' @ line 2, column 57.
   n { out -> out << """($issue) \CPP\Dicse

 

Description has \CPP\code in it which it appears to be erroring on and not sending an email.  Is there a way to fix this?

4 answers

0 votes
Kevin Dalton October 21, 2015

I'm working to get this added but it doesn't make since why the comment strings would cause the description strings to error with unexpected char: '\' since the text is in the description not the comments.

0 votes
Thanos Batagiannis [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 21, 2015

Hey Kevin, def commentsList = [] lastUserCommented = commentsList?.last()?.authorUser?.displayName Results to: Error Cannot access last() element from an empty List Therefore you can use def commentsList = [] if (!commentsList?.empty) lastUserCommented = commentsList?.last()?.authorUser?.displayName Results to: null (no error)

0 votes
Kevin Dalton October 21, 2015

So with the .empty you would check to see if it is empty 1st before running the comment part?

0 votes
Thanos Batagiannis [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 21, 2015

Hi Kevin, I was trying to reproduce the error but your code works fine for me (having as a description a simple helloWorld code in C++). You may encounter a problem if there are no comments and you invoke the .last in an empty list. You can use the .empty to determine if the list is empty (the Safe Navigation operator ? only checks for null) Also you should use the ComponentAccessor instead of the componentManager in order to get the commentManager.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events