Create a Issue via Java/Groovy

Jens Kisters //SeibertSolutions
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.
November 4, 2016

Hey there,

 

im trying to create a new Issue in Groovy Script (i want to make a copy, which is inside another project as the source. Moving an Issue would be awesome but i guess this is way harder)

 

import com.atlassian.jira.event.issue.IssueEventManager
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.project.Project
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.user.util.UserManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.fields.config.manager.IssueTypeSchemeManager;
import com.atlassian.jira.issue.issuetype.IssueType

IssueManager issueManager = ComponentAccessor.getIssueManager()
Issue issue = issueManager.getIssueByKeyIgnoreCase("TEST-1") 

ApplicationUser reporter = issue.getReporter();

IssueTypeSchemeManager issueTypeSchemeManager = ComponentAccessor.getIssueTypeSchemeManager()
Project project = ComponentAccessor.getProjectManager().getProjectObjByKey("P2")
IssueType issueType = issueTypeSchemeManager.getDefaultIssueType(project);

CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager()
CustomField senderName = customFieldManager.getCustomFieldObjectByName("E-Mail Absendername")
String senderNameString = (String) issue.getCustomFieldValue(senderName)
MutableIssue newIssue = ComponentAccessor.getIssueFactory().getIssue()
newIssue.setProjectId(project.getId())
newIssue.setDescription(issue.getDescription());
newIssue.setSummary(issue.getSummary())
newIssue.setIssueType(issueType)
if (senderNameString != null) {
    newIssue.setCustomFieldValue(senderName, senderNameString)
}

issueManager.updateIssue(reporter, newIssue, EventDispatchOption.DO_NOT_DISPATCH, false)

I get 

Script console script failed: java.lang.NullPointerException at com.atlassian.jira.issue.util.DefaultIssueUpdater.doUpdate(DefaultIssueUpdater.java:44) at com.atlassian.jira.issue.managers.DefaultIssueManager.doUpdate(DefaultIssueManager.java:691) at com.atlassian.jira.issue.managers.DefaultIssueManager.updateIssue(DefaultIssueManager.java:675) at com.atlassian.jira.issue.managers.DefaultIssueManager.updateIssue(DefaultIssueManager.java:655) at com.atlassian.jira.issue.IssueManager$updateIssue$0.call(Unknown Source) at Script33.run(Script33.groovy:42)

in Script Runner.

Did i forget a mandatory field?

1 answer

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

Post a new question

1 vote
Petar Petrov (Appfire)
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.
November 7, 2016

You are calling updateIssue() with a newly create Issue instance - this will not work.

You should be using the IssueService instead - validateCreate() and create() methods. See some documentation here.

TAGS
AUG Leaders

Atlassian Community Events