Deleting Comments for Role Level

Don Schier March 11, 2021

Question, because I'm stuck... The log shows the <value> I am searching for but the comment does not delete--

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.comments.Comment
import com.atlassian.jira.issue.comments.CommentManager
import com.atlassian.jira.security.roles.ProjectRoleManager
import com.atlassian.jira.security.roles.ProjectRole
import org.apache.log4j.Logger

def log = Logger.getLogger("com.acme.workflows")

IssueManager issueManager = ComponentAccessor.issueManager
CommentManager commentManager = ComponentAccessor.commentManager

def issueKeys = [<value1>,<value2>]
issueKeys.each
  {issueKey ->
     MutableIssue issue = issueManager.getIssueObject(issueKey)
     List<Comment> comments = commentManager.getComments(issue)
     comments.each
          {comment ->
               log.warn(comment.getRoleLevel())
               if (comment.getRoleLevel() == <value>)
                 {commentManager.delete(comment)
                 }
           }
   }

Anyone know why?

I can manually delete each comment, but there are thousands of tickets.

Any guidance is appreciated.

1 answer

0 votes
Tuncay Senturk
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
April 4, 2021

Hi @Don Schier 

There can be several reasons for this. But from the first look below if statement seems problematic:

if (comment.getRoleLevel() == <value>)

comment.getRoleLevel returns an instance of ProjectRole class, so you can't do such equality. Instead, you should be checking as below

if (null != comment.getRoleLevel() && <value>.equals(comment.getRoleLevel().getName()))

I also added a null check as it would be null if the comment is public.

I hope I was clear

Cheers

Tuncay

Suggest an answer

Log in or Sign up to answer