Forums

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

Caused by: org.ofbiz.core.entity.GenericTransactionException: Commit failed, rollback previously

Mouna Hammoudi
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.
August 17, 2022

I am trying to execute a transition when clicking on a menu item in Jira Data Center. I have tried the following code. It is using the APIs workflowTransitionUtil.setAction, workflowTransitionUtil.validate and workflowTransitionUtil.progress and it also fails. I am creating a custom post function for a transition. I am getting the errror:

Caused by: org.ofbiz.core.entity.GenericTransactionException: Commit failed, rollback previously requested by nested transaction.

com.atlassian.jira.transaction.TransactionRuntimeException: org.ofbiz.core.entity.GenericTransactionException: Commit failed, rollback previously requested by nested transaction.
org.ofbiz.core.entity.GenericTransactionException: Commit failed, rollback previously requested by nested transaction.
2022-08-17 11:31:55,313+0200 https-openssl-nio-443-exec-533 ERROR mouh 691x78439x26 1a2i7f4 10.248.140.0 /secure/CommentAssignIssue.jspa [c.a.jira.transaction.TransactionSupportImpl] Unable to commit transaction : Commit failed, rollback previously requested by nested transaction.

Could you please let me know about the solution? My transition is leading to itself and I would like to execute it even though it is leading to itself.

import com.atlassian.jira.workflow.WorkflowTransitionUtil
import com.atlassian.jira.issue.comments.Comment
import com.atlassian.jira.workflow.JiraWorkflow
import com.atlassian.jira.workflow.WorkflowManager
import org.apache.log4j.Logger
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl
import com.atlassian.jira.util.JiraUtils
import com.atlassian.jira.user.ApplicationUser;

def log = Logger.getLogger("atlassian-jira.log")
log.warn("test")

WorkflowManager workflowManager = ComponentAccessor.getWorkflowManager();
JiraWorkflow workflow = workflowManager.getWorkflow(issue);

def wfd = workflow.getDescriptor()
def actionName = wfd.getAction(transientVars["actionId"] as int).getName();
ApplicationUser mycurrentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()

log.warn("This is the last action done "+actionName)

log.warn("CAM 2")
int transitionToBeDoneInt = 1731 //ID of MounaTransition

log.warn("cam 3 " +transitionToBeDoneInt)

def myComment= "+++ added via workflow action "+actionName+"\"+++"
log.warn("cam 4 "+actionName)

def content =( transientVars["comment"] +"\n"+myComment )as String
log.warn("cam 5 "+ content)

transientVars["comment"]= content

log.warn("cam 6"+ content)


log.warn("CAM 7 "+ issue.getKey())


def inputParameters = ComponentAccessor.getIssueService().newIssueInputParameters();

log.warn("CAM 8 "+ " "+issue.getId()+" "+ transitionToBeDoneInt+" "+inputParameters)

def workflowTransitionUtil = ( WorkflowTransitionUtil ) JiraUtils.loadComponent( WorkflowTransitionUtilImpl.class )
workflowTransitionUtil.setIssue(issue)
workflowTransitionUtil.setUserkey(mycurrentUser.getKey())

workflowTransitionUtil.setAction(transitionToBeDoneInt);//Id of the status you want to transition to
log.warn("CAM 9 "+ " "+issue.getId()+" "+ transitionToBeDoneInt+" "+inputParameters)
workflowTransitionUtil.validate()
log.warn("CAM 19 "+ " "+issue.getId()+" "+ transitionToBeDoneInt+" "+inputParameters)

workflowTransitionUtil.progress();
log.warn("CAM 11 "+ " "+issue.getId()+" "+ transitionToBeDoneInt+" "+inputParameters)

 

1 answer

0 votes
Nic Brough -Adaptavist-
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.
August 17, 2022

Same answer as last time - stop trying to transition an issue inside a transition, it won't work.

Suggest an answer

Log in or Sign up to answer