I am trying to write some postfunction to execute some transitions back to back. I get the following error message when I click on the menu item for executing the 3 transitions back to back.
I am supposed to transition from open to fixed, then from fixed to tested and from tested to completed. The first transition works as expected but the second one is not working, I don't really know why, I have tried printing the list of error or warning messages but they are both empty. Anyone knows what the problem is?
Here is my code:
package CombineTransitions
import com.atlassian.jira.issue.Issue;
import org.apache.log4j.Logger
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue;
import CombineTransitions.Configuration_CombineTransitions
import com.atlassian.jira.bc.issue.IssueService.IssueResult
import com.atlassian.jira.bc.issue.IssueService.TransitionValidationResult
def log1 = Logger.getLogger("atlassian-jira.log")
def combineTransitionsHashMap= Configuration_CombineTransitions.getCombineTransitionsHashMap()
def issueStatusTypeId = combineTransitionsHashMap["issueStatusTypeId"] as String;
def transitionFromOpentoFixed = combineTransitionsHashMap["transitionFromOpentoFixed"] as Integer;
def transitionFromFixedToTested = combineTransitionsHashMap["transitionFromFixedToTested"] as Integer;
def transitionFromTestedToCompleted = combineTransitionsHashMap["transitionFromTestedToCompleted"] as Integer;
def fixedStatusName = combineTransitionsHashMap["fixedStatusName"] as String;
def testedStatusName = combineTransitionsHashMap["testedStatusName"] as String;
def completedStatusName = combineTransitionsHashMap["completedStatusName"] as String;
def fixedStatusId = combineTransitionsHashMap["fixedStatusId"] as String;
def testedStatusId = combineTransitionsHashMap["testedStatusId"] as String;
def completedStatusId = combineTransitionsHashMap["completedStatusId"] as String;
if (issue.getStatus().getSimpleStatus().getId().equals(issueStatusTypeId)) {
def ok = false
ok=performTransition(transitionFromOpentoFixed, fixedStatusName, fixedStatusId);
log.warn("MOUNA first boolean "+ok +" "+fixedStatusName)
if(ok){
ok= performTransition(transitionFromFixedToTested, testedStatusName, testedStatusId);
log.warn("MOUNA second boolean "+ok +" "+testedStatusName)
if(ok){
ok= performTransition(transitionFromTestedToCompleted, completedStatusName, completedStatusId);
log.warn("MOUNA third boolean "+ok +" "+completedStatusName)
}
}
}
def performTransition(int transitionToBeDone, String destinationStatus, String statusId ) {
log.warn("MOUNA ORIGINAL STATUS "+ issue.getStatus() + "DEST STATUS "+ destinationStatus)
issue = ComponentAccessor.getIssueManager().getIssueObject(issue.id)
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
String issueKey = issue.getKey()
IssueService issueService = ComponentAccessor.getIssueService()
def issueInputParameters = issueService.newIssueInputParameters()
issueInputParameters.setComment("Transitioning issue from status "+ issue.getStatus().getName()+" to status "+ destinationStatus );
TransitionValidationResult transitionValidationResult = issueService.validateTransition(currentUser, issue.id, transitionToBeDone, issueInputParameters)
log.warn("MOUNA transitionValidationResult: "+transitionValidationResult + " actionID "+transitionValidationResult.getActionId()+" transitionValidationResult.getAdditionInputs() "+transitionValidationResult.getAdditionInputs()+" transitionValidationResult.getFieldValuesHolder().toString() "+
transitionValidationResult.getFieldValuesHolder().toString() )
if (transitionValidationResult.isValid()) {
IssueResult transitionResult = issueService.transition(currentUser, transitionValidationResult)
issue.setStatusId(statusId)
log.warn("MOUNA STATUS "+ transitionResult.getIssue().getStatus().getName())
return true
}else{
log.warn("MOUNA 2 getErrorCollection() "+transitionValidationResult.getErrorCollection() )
log.warn("MOUNA 3 getWarningCollection() "+transitionValidationResult.getWarningCollection().getWarnings().toString() )
// log.warn("MOUNA 4 "+issue.getStatus().getName() +" transitionToBeDone "+ transitionToBeDone +" destinationStatus "+destinationStatus)
return false
}
}
This is my log file where I am printing some values for debugging:
2022-12-22 10:32:27,239+0100 https-openssl-nio-443-exec-3 WARN mouh 632x4183x1 jj2112 10.248.75.15 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.ScriptBindingsManager] MOUNA second boolean false Tested
2022-12-22 10:32:27,239+0100 https-openssl-nio-443-exec-3 WARN mouh 632x4183x1 jj2112 10.248.75.15 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.ScriptBindingsManager] MOUNA 3 getWarningCollection() []
2022-12-22 10:32:27,239+0100 https-openssl-nio-443-exec-3 WARN mouh 632x4183x1 jj2112 10.248.75.15 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.ScriptBindingsManager] MOUNA 2 getErrorCollection() Errors: {}
2022-12-22 10:32:27,239+0100 https-openssl-nio-443-exec-3 WARN mouh 632x4183x1 jj2112 10.248.75.15 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.ScriptBindingsManager] MOUNA transitionValidationResult: com.atlassian.jira.bc.issue.IssueService$TransitionValidationResult@5325f11e actionID 111 transitionValidationResult.getAdditionInputs() null transitionValidationResult.getFieldValuesHolder().toString() [formToken:null]
2022-12-22 10:32:27,223+0100 https-openssl-nio-443-exec-3 WARN mouh 632x4183x1 jj2112 10.248.75.15 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.ScriptBindingsManager] MOUNA ORIGINAL STATUS IssueConstantImpl[[GenericEntity:Status][sequence,8][statuscategory,4][name,Fixed][iconurl,/images/icons/status_fixed-sag.gif][description,][id,10001]]DEST STATUS Tested
2022-12-22 10:32:27,223+0100 https-openssl-nio-443-exec-3 WARN mouh 632x4183x1 jj2112 10.248.75.15 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.ScriptBindingsManager] MOUNA first boolean true Fixed
2022-12-22 10:32:27,223+0100 https-openssl-nio-443-exec-3 WARN mouh 632x4183x1 jj2112 10.248.75.15 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.ScriptBindingsManager] MOUNA STATUS Open
2022-12-22 10:32:26,457+0100 https-openssl-nio-443-exec-3 WARN mouh 632x4183x1 jj2112 10.248.75.15 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.ScriptBindingsManager] MOUNA transitionValidationResult: com.atlassian.jira.bc.issue.IssueService$TransitionValidationResult@294cb9b9 actionID 71 transitionValidationResult.getAdditionInputs() [commentProperty:null, originalAssigneeId:JIRAUSER59200, comment:Transitioning issue from status Open to status Fixed, roleLevel:null, commentLevel:null, userKey:JIRAUSER59200] transitionValidationResult.getFieldValuesHolder().toString() [fixVersions:[], customfield_10298:CustomFieldParams: Readme Text. Params: {null=[]}., customfield_10002:CustomFieldParams: QA/QE Owner. Params: {null=[]}., customfield_10211:CustomFieldParams: Phase Missed. Params: {null=[]}., customfield_10531:CustomFieldParams: Fix Build. Params: {null=[]}., customfield_10215:CustomFieldParams: Test Steps. Params: {null=[]}., customfield_10217:CustomFieldParams: Source Control Ref.. Params: {null=[]}., formToken:null, customfield_10219:CustomFieldParams: Solution Description. Params: {null=[bm]}., customfield_19380:CustomFieldParams: Related Product Standard. Params: {null=[]}., comment:[levelPresent:true, comment:Transitioning issue from status Open to status Fixed, groupLevel:null, roleLevel:null], worklog:com.atlassian.jira.issue.fields.WorklogSystemField$WorklogValue$Builder$1@3ea48487, assignee:mouh]
2022-12-22 10:32:26,426+0100 https-openssl-nio-443-exec-3 WARN mouh 632x4183x1 jj2112 10.248.75.15 /secure/CommentAssignIssue.jspa [c.o.scriptrunner.runner.ScriptBindingsManager] MOUNA ORIGINAL STATUS IssueConstantImpl[[GenericEntity:Status][sequence,4][statuscategory,4][name,Open][iconurl,/images/icons/statuses/open.png][description,null][id,1]]DEST STATUS Fixed