script runner doesn't work for a specific user (administrator)

Olivier Albertini February 27, 2015

When I use a normal user, the script works fine but when I use oalbertini (administrator) the script doesn't work...

here the error when I use oalbertini :

2015-02-27 10:42:46,730 http-bio-8090-exec-13 ERROR oalbertini 642x5796x1 1xwhhou   /secure/CommentAssignIssue.jspa [scriptrunner.jira.workflow.ScriptWorkflowFunction] Script function failed on issue: ST-38045, actionId: 891, file: <inline script>
com.atlassian.jira.exception.CreateException: An unknown exception occured executing Validator com.atlassian.jira.workflow.SkippableValidator@2448ef3a: root cause: java.lang.NullPointerException
	at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:695)
	at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:618)
	at com.atlassian.jira.issue.IssueManager$createIssue.call(Unknown Source)
	at com.atlassian.jira.issue.IssueManager$createIssue.call(Unknown Source)
	at Script1.run(Script1.groovy:51)
Caused by: com.atlassian.jira.workflow.WorkflowException: An unknown exception occured executing Validator com.atlassian.jira.workflow.SkippableValidator@2448ef3a: root cause: java.lang.NullPointerException
	at com.atlassian.jira.workflow.OSWorkflowManager.createIssue(OSWorkflowManager.java:909)
	at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:684)
	... 4 more
Caused by: com.opensymphony.workflow.WorkflowException: An unknown exception occured executing Validator com.atlassian.jira.workflow.SkippableValidator@2448ef3a: root cause: java.lang.NullPointerException
	at com.opensymphony.workflow.AbstractWorkflow.verifyInputs(AbstractWorkflow.java:1523)
	at com.opensymphony.workflow.AbstractWorkflow.initialize(AbstractWorkflow.java:615)
	at com.atlassian.jira.workflow.OSWorkflowManager.createIssue(OSWorkflowManager.java:879)
	... 5 more
Caused by: java.lang.NullPointerException
	at com.atlassian.jira.workflow.validator.AbstractPermissionValidator.hasUserPermission(AbstractPermissionValidator.java:49)
	at com.atlassian.jira.workflow.validator.PermissionValidator.validate(PermissionValidator.java:46)
	at com.atlassian.jira.workflow.SkippableValidator.validate(SkippableValidator.java:52)
	at com.opensymphony.workflow.AbstractWorkflow.verifyInputs(AbstractWorkflow.java:1512)
	... 8 more
2015-02-27 10:42:51,123 ISSUE-indexQueue:thread-1 INFO oalbertini 671x925x1 m1jov7    /secure/admin/jira/IndexReIndex.jspa [action.admin.index.IndexAdminImpl] Re-indexing is 65% complete. Current index: Issue

 

Here my script :

 

import com.atlassian.jira.user.UserUtils
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.link.IssueLink
import com.atlassian.jira.util.ImportUtils
import com.atlassian.crowd.embedded.api.User
import com.opensymphony.workflow.WorkflowContext
import org.apache.log4j.Category
import com.atlassian.jira.issue.fields.CustomField
 
log = Category.getInstance("com.onresolve.jira.groovy.CreateDependentIssue")
 
// Configurable section
def projectName = "Technician" // Name of project you want to create the issue in
def CustomTechFieldName = "customfield_11812"
def CustomLocationName = "customfield_10312"
def CustomTerminalName = "customfield_11811"
def customFieldManager = ComponentManager.getInstance().getCustomFieldManager()

CustomField customFieldTech = customFieldManager.getCustomFieldObject(CustomTechFieldName)
CustomField customFieldLocation = customFieldManager.getCustomFieldObject(CustomLocationName)
CustomField customFieldTerminal = customFieldManager.getCustomFieldObject(CustomTerminalName)

def customFieldTechVal = issue.getCustomFieldValue(customFieldTech).name
def customFieldLocationVal = issue.getCustomFieldValue(customFieldLocation)
def customFieldTerminalVal = issue.getCustomFieldValue(customFieldTerminal)


// for other customisations change the code below

issueMgr = ComponentManager.getInstance().getIssueManager()
projectMgr = ComponentManager.getInstance().getProjectManager()
 
String currentUser = ((WorkflowContext) transientVars.get("context")).getCaller();
User currentUserObj = UserUtils.getUser(currentUser);

def wasIndexing = ImportUtils.indexIssues
ImportUtils.indexIssues = true
issueFactory = ComponentManager.getInstance().getIssueFactory()
newissue = issueFactory.getIssue()
newissue.setSummary (issue.summary+"- "+customFieldTerminalVal)
newissue.setProject (projectMgr.getProjectByName(projectName))
newissue.setIssueType (issue.getIssueType())
newissue.description = issue.description
newissue.assignee = UserUtils.getUser(customFieldTechVal);
newissue.reporter = issue.getAssignee()
def cf = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'Location'}
newissue.setCustomFieldValue(cf, issue.getCustomFieldValue(cf))
 
params = ["issue":newissue]
subTask = issueMgr.createIssue(currentUserObj, params)
println subTask.get("key")
 
// get the current list of outwards depends on links to get the sequence number
linkMgr = ComponentManager.getInstance().getIssueLinkManager()
def sequence = 0
for (IssueLink link in linkMgr.getInwardLinks(issue.id)) {
    if ("Blocks" == link.issueLinkType.name) {
        sequence++;
    }
}
 
linkMgr = ComponentManager.getInstance().getIssueLinkManager()
// TODO: Should check that 10000 is always the link id for Blocks
linkMgr.createIssueLink (newissue.id, issue.id, 10000, sequence, currentUserObj)
ImportUtils.indexIssues = wasIndexing

 

With the user oalbertini, the script always fails. If I use a different user for the same issue and transition, the script works...


The same problem occurs on different scripts.

This script is executed on JSD project. When an agent change the status "Waiting for support" to "Waiting for Technician"

2 answers

0 votes
Olivier Albertini February 27, 2015

Yes I can do everything on all projects included this project. and I'm an agentscript runner.PNG

0 votes
JamieA
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.
February 27, 2015

Does oalbertini have permissions to create an issue or whatever you're doing in the UI? JSD seems to be causing all kinds of weird problems.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events