setting component is giving java.lang.StackOverflowError

Jeetendra Dash May 21, 2019

I am writing a post function to create a subtask based on components

below is the code

def customFieldManager = ComponentAccessor.getCustomFieldManager()
SubTaskManager subTaskManager = ComponentAccessor.getSubTaskManager()
ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
IssueFactory issueFactory = ComponentAccessor.getIssueFactory()
def constantManager = ComponentAccessor.getConstantsManager()
def issueManager = ComponentAccessor.getIssueManager()


def issue = issue
def parent_issue = issue.getParentObject()

def projectComponentManager = ComponentAccessor.getProjectComponentManager()
def componentFRIproduct = projectComponentManager.findByComponentName(issue.getProjectObject().getId(), "comp1")

MutableIssue newSubTask = issueFactory.getIssue()
newSubTask.setParentObject(parent_issue)
newSubTask.setProjectObject(parent_issue.getProjectObject())
newSubTask.setIssueTypeId(constantManager.getAllIssueTypeObjects().find{
it.getName() == "Analysis"
}.id)
newSubTask.setComponent(componentFRIproduct);
Map<String,Object> newIssueParams = ["issue" : newSubTask] as Map<String,Object>
issueManager.createIssueObject(user, newIssueParams)
subTaskManager.createSubTaskIssueLink(parent_issue, newSubTask, user)

 

but i am getting below error

java.lang.StackOverflowError
at com.onresolve.scriptrunner.runner.diag.DiagnosticsManagerImpl.toStringWithClassInfo(DiagnosticsManagerImpl.groovy:151)
at com.onresolve.scriptrunner.runner.diag.DiagnosticsManagerImpl$_convertToPayload_closure5$_closure8.doCall(DiagnosticsManagerImpl.groovy:175)
at com.onresolve.scriptrunner.runner.diag.DiagnosticsManagerImpl$_convertToPayload_closure5.doCall(DiagnosticsManagerImpl.groovy:174)
at com.onresolve.scriptrunner.runner.diag.DiagnosticsManagerImpl.convertToPayload(DiagnosticsManagerImpl.groovy:169)
at com.onresolve.scriptrunner.runner.diag.DiagnosticsManagerImpl$convertToPayload.callStatic(Unknown Source)
at com.onresolve.scriptrunner.runner.diag.DiagnosticsManagerImpl.recordSnapshot(DiagnosticsManagerImpl.groovy:143)
at com.onresolve.scriptrunner.runner.diag.DiagnosticsManager$recordSnapshot$0.call(Unknown Source)
at com.onresolve.scriptrunner.jira.workflow.ScriptWorkflowFunction.run(ScriptWorkflowFunction.groovy:202)
at com.onresolve.scriptrunner.jira.workflow.ScriptWorkflowFunction$run$1.callCurrent(Unknown Source)
at com.onresolve.scriptrunner.jira.workflow.ScriptWorkflowFunction.execute(ScriptWorkflowFunction.groovy:102)
at com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:1014)
at com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1407)
at com.opensymphony.workflow.AbstractWorkflow.initialize(AbstractWorkflow.java:606)
at com.atlassian.jira.workflow.OSWorkflowManager.createIssue(OSWorkflowManager.java:742)
at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:580)
at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssue(DefaultIssueManager.java:494)
at com.atlassian.jira.issue.managers.DefaultIssueManager.createIssueObject(DefaultIssueManager.java:599)
at com.atlassian.jira.issue.managers.RequestCachingIssueManager.createIssueObject(RequestCachingIssueManager.java:198)
at com.atlassian.jira.issue.IssueManager$createIssueObject$0.call(Unknown Source)
at Script396.run(Script396.groovy:57)

 

if i remove newSubTask.setComponent(componentFRIproduct);

then the code is working fine.but i am unable to set the components in the subtask

Can anybody help me here to fix above problem?

1 answer

0 votes
fjodors
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.
May 24, 2019

Hi

From Jira API (https://docs.atlassian.com/software/jira/docs/api/7.6.1/ , mutableIssue inteface) method is:
setComponent(Collection<ProjectComponent> components)

So, probably you need not component, but collection with component(-s).

Suggest an answer

Log in or Sign up to answer