Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Script runner error after JIRA upgrade to 8.5.4

Madhavan Jayabalan September 2, 2020

Hi,

After upgrade to JIRA 8.5.4. My script runner script started to throw error in compnentManager.

import com.atlassian.jira.ComponentManager

GroupManager groupManager = ComponentManager.getComponentInstanceOfType(GroupManager.class)

 

It also throws error in,

WorkflowTransitionUtil workflowTransitionUtil = (WorkflowTransitionUtil) JiraUtils.loadComponent(WorkflowTransitionUtilImpl.class);

 

Complete script below,

 

import com.opensymphony.workflow.WorkflowContext;
import com.atlassian.jira.workflow.WorkflowTransitionUtil;
import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl;
import com.atlassian.jira.util.JiraUtils;
import com.atlassian.jira.issue.MutableIssue;

import com.atlassian.jira.ComponentManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.security.groups.GroupManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.customfields.manager.OptionsManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.crowd.embedded.api.User
import com.atlassian.crowd.embedded.api.Group
import com.atlassian.jira.util.SimpleErrorCollection
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.plugin.webfragment.model.JiraHelper;
import com.atlassian.jira.config.ResolutionManager

GroupManager groupManager = ComponentManager.getComponentInstanceOfType(GroupManager.class)

CustomFieldManager cfManager = ComponentAccessor.getCustomFieldManager()

CustomField cf = cfManager.getCustomFieldObject(11907);
Object customFieldValue = (Object) issue.getCustomFieldValue(cf)

Issue parent = issue.getParentObject();
def issueLinkManager = ComponentAccessor.getIssueLinkManager();
def resolutionManager = ComponentAccessor.getComponent(ResolutionManager)
boolean check = false;
log.info('after');

String currentUser = ((WorkflowContext) transientVars.get("context")).getCaller();
WorkflowTransitionUtil workflowTransitionUtil = (WorkflowTransitionUtil) JiraUtils.loadComponent(WorkflowTransitionUtilImpl.class);

issueLinkManager.getOutwardLinks(issue.getId()).each
{
issueLink ->
MutableIssue linkIssue = issueLink.getDestinationObject() as MutableIssue
if((linkIssue.issueTypeObject.name == 'Requirements') && (linkIssue.summary == 'REQ ' + customFieldValue + ' - ' + linkIssue.getParentObject().getSummary()) )
{
if(linkIssue.resolutionObject?.name == 'Fixed')
{
check = true;
}else
{
check = false;
}
}
}
issueLinkManager.getOutwardLinks(issue.getId()).each
{
issueLink ->
MutableIssue linkIssue = issueLink.getDestinationObject() as MutableIssue

if((linkIssue.issueTypeObject.name == 'Design & Code' || (linkIssue.issueTypeObject.name == 'Test Prep.')) && ((linkIssue.summary == 'D&C ' + customFieldValue + ' - ' + linkIssue.getParentObject().getSummary()) || (linkIssue.summary == 'TP ' + customFieldValue + ' - ' + linkIssue.getParentObject().getSummary())) && (linkIssue.statusObject.name == 'Closed') && (linkIssue.resolutionObject?.name == 'Fixed')
&& check )
{
workflowTransitionUtil.setIssue(linkIssue);
workflowTransitionUtil.setUserkey(currentUser);
workflowTransitionUtil.setAction(51);
workflowTransitionUtil.validate();
workflowTransitionUtil.progress();
}
}

Appreciate your support on this.

1 answer

0 votes
Sachin
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.
September 2, 2020
Madhavan Jayabalan September 21, 2020

Hi,

Thanks for the feedback. I have modified the script, now i don't see the error but it doesn't work. 

Could you spot any mistake?

import com.opensymphony.workflow.WorkflowContext;
import com.atlassian.jira.workflow.WorkflowTransitionUtil;
import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl;
import com.atlassian.jira.util.JiraUtils;
import com.atlassian.jira.issue.MutableIssue;

//import com.atlassian.jira.ComponentManager
import com.atlassian.jira.component.pico.ComponentManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.security.groups.GroupManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.customfields.manager.OptionsManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.crowd.embedded.api.User
import com.atlassian.crowd.embedded.api.Group
import com.atlassian.jira.util.SimpleErrorCollection
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.plugin.webfragment.model.JiraHelper;
import com.atlassian.jira.config.ResolutionManager

import org.apache.log4j.Logger
import static org.apache.log4j.Level.DEBUG

//GroupManager groupManager = ComponentManager.getComponentInstanceOfType(GroupManager.class)
GroupManager groupManager = ComponentAccessor.getComponent(GroupManager.class)

CustomFieldManager cfManager = ComponentAccessor.getCustomFieldManager()

CustomField cf = cfManager.getCustomFieldObject(11907);
Object customFieldValue = (Object) issue.getCustomFieldValue(cf)

Issue parent = issue.getParentObject();
def issueLinkManager = ComponentAccessor.getIssueLinkManager();
def resolutionManager = ComponentAccessor.getComponent(ResolutionManager)
boolean check = false;
log.info('after');

String currentUser = ((WorkflowContext) transientVars.get("context")).getCaller();

WorkflowTransitionUtil workflowTransitionUtil = (WorkflowTransitionUtil) ComponentAccessor.getComponent(WorkflowTransitionUtilImpl.class);


issueLinkManager.getOutwardLinks(issue.getId()).each
{
issueLink ->
MutableIssue linkIssue = issueLink.getDestinationObject() as MutableIssue

if((linkIssue.issueType == 'Requirements') && (linkIssue.summary == 'REQ ' + customFieldValue + ' - ' + linkIssue.getParentObject().getSummary()) )
{

if(linkIssue.resolution?.name == 'Fixed')
{
check = true;

}else
{
check = false;

}
}
}
issueLinkManager.getOutwardLinks(issue.getId()).each
{
issueLink ->
MutableIssue linkIssue = issueLink.getDestinationObject() as MutableIssue

if((linkIssue.issueType.name == 'Design & Code' || (linkIssue.issueType.name == 'Test Prep.')) && ((linkIssue.summary == 'D&C ' + customFieldValue + ' - ' + linkIssue.getParentObject().getSummary()) || (linkIssue.summary == 'TP ' + customFieldValue + ' - ' + linkIssue.getParentObject().getSummary())) && (linkIssue.status.name == 'Closed') && (linkIssue.resolution?.name == 'Fixed') && check )
{
log.info("inside transition")
workflowTransitionUtil.setIssue(linkIssue);
workflowTransitionUtil.setUserkey(currentUser);

workflowTransitionUtil.setAction(51);
workflowTransitionUtil.validate();
workflowTransitionUtil.progress();
}
}

Suggest an answer

Log in or Sign up to answer