Hello,
i had a piece of code that worked just fine when deleteing subtasks.
Now i am trying to delete standard issues and i can't get it to work.
I have tried two ways of deleting them:
package sandbox
import com.atlassian.jira.bc.issue.search.SearchService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.search.SearchResults
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.web.bean.PagerFilter
IssueManager issueManager = ComponentAccessor.getIssueManager()
Issue invoiceIssue = issueManager.getIssueByKeyIgnoreCase("DBH-439")
ApplicationUser runAsUser = ComponentAccessor.getUserManager().getUserByKey("admin")
def getIssueListByJql = { String jql ->
SearchService searchService = ComponentAccessor.getComponent(SearchService.class)
SearchService.ParseResult parseResult = searchService.parseQuery(runAsUser, jql);
if (parseResult.isValid()) {
SearchResults searchResult = searchService.search(runAsUser, parseResult.getQuery(), PagerFilter.getUnlimitedFilter())
return searchResult.getIssues();
} else {
throw new Exception("invalid jql:" + jql)
}
}
Iterator iterator = getIssueListByJql("summary ~ \"|" + invoiceIssue.getKey() + "|\" AND project = PAGE AND issueType = Seite").iterator()
Boolean workaround = true
while (iterator.hasNext()) {
Issue issue = (Issue) iterator.next()
log.error "To DEL " +issue.getKey() + "," + runAsUser + "," + issue + "," + EventDispatchOption.ISSUE_DELETED + "," + issueManager
Issue issueToDelete = issue
if (workaround) {
issueToDelete = issueManager.getIssueByKeyIgnoreCase(issue.getKey())
}
issueManager.deleteIssue(runAsUser, issueToDelete, EventDispatchOption.DO_NOT_DISPATCH, false)
log.error "DELETED " +issue.getKey()
}
When i run this one i get
groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method com.atlassian.jira.issue.managers.RequestCachingIssueManager#deleteIssue. Cannot resolve which method to invoke for [class com.atlassian.jira.user.DelegatingApplicationUser, null, class com.atlassian.jira.event.type.EventDispatchOption$EventDispatchOptionImpl, class java.lang.Boolean] due to overlapping prototypes between: [interface com.atlassian.jira.user.ApplicationUser, interface com.atlassian.jira.issue.Issue, interface com.atlassian.jira.event.type.EventDispatchOption, boolean] [interface com.atlassian.jira.user.ApplicationUser, interface com.atlassian.jira.issue.MutableIssue, interface com.atlassian.jira.event.type.EventDispatchOption, boolean] at sandbox.Script157.run(Script157.groovy:38)
When i set workaound to false i get
java.lang.UnsupportedOperationException: Cannot remove an ImmutableGenericValue at com.atlassian.jira.util.ofbiz.ImmutableGenericValue.remove(ImmutableGenericValue.java:36) at com.atlassian.jira.issue.managers.DefaultIssueDeleteHelper.deleteIssue(DefaultIssueDeleteHelper.java:143) at com.atlassian.jira.issue.managers.DefaultIssueManager.deleteIssue(DefaultIssueManager.java:717) at com.atlassian.jira.issue.managers.RequestCachingIssueManager.deleteIssue(RequestCachingIssueManager.java:225) at com.atlassian.jira.issue.IssueManager$deleteIssue$4.call(Unknown Source) at sandbox.Script159.run(Script159.groovy:38)
Any ideas?
Please help me Atlassian Community, you are my only hope