How to throw exception in Jira UI if some condition is satisfied in groovy script

Although I can see error in catilina.out of JIRA but I want the user to stop making such change (psd < srsd) in case he tries to something like that. 

import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.event.issue.AbstractIssueEventListener
import com.atlassian.jira.event.issue.IssueEvent
import com.atlassian.jira.project.Project
import com.atlassian.jira.workflow.WorkflowException

public class Pdrtst_test extends AbstractIssueEventListener {
	void workflowEvent(IssueEvent event) {
	void customEvent(IssueEvent event) {
		Issue issue = event.issue 

	ComponentManager componentManager = ComponentManager.getInstance()
	def customFieldManager = componentManager.getCustomFieldManager()

	def cf1 = customFieldManager.getCustomFieldObjectByName("Prod Scheduled Date")
	def psd = issue.getCustomFieldValue(cf1)

	def cf2 = customFieldManager.getCustomFieldObjectByName("SIS Tech Review Start Date")
	def srsd = issue.getCustomFieldValue(cf2)

	if (psd &lt; srsd){
		invalidInputException = new InvalidInputException("customfield_id_10491","Prod Sch date should be greater than SIS date")

I have put this script in script-listener and have set its Event as All events.

How can i achieve this ?

I want to show error on JIRA UI and stop user from making such change .

2 answers

1 accepted

Accepted Answer
3 votes

A listener can't generate an error in the UI, as it doesn't come into play until after the triggering event is fired (which means the user has already successfully completed their edit in the UI such that the "Issue Updated" event is fired, for example). Using a listener, you could email the user and tell them they did something wrong; otherwise, if the change is taking place on a workflow transition, you can add a validator. If not, then perhaps the behaviors plugin can be used to add a validation to the field, but I've never done that so don't have any samples. You could restrict editing the field to a workflow transition, even if one that returns to the same state, as a worst case; from there, you remove the field from the general edit screen, and only include it on a screen presented during that transition.

Assuming that is a workflow validator, you don't throw an exception, you use:

import com.opensymphony.workflow.InvalidInputException

invalidInputException = new InvalidInputException("Error here ===============");


If it's not a validator, you'll need to explain where you are trying to run this code. Also, how - I'd guess at script-runner, but would need that confirmed.

I have added some more info in my code.Please have a look. Its in Script-listner

Yes, a listener is the wrong place to do this. I'd like to mark Jeremy's comment here as an answer so you can mark it correct - you need to rethink your approach and go with one of his suggestions.

Thanks! Will do some more searching on google and will update this post :)

Suggest an answer

Log in or Sign up to answer
Community showcase
Published Monday in Jira Ops

Jira Ops Early Access Program Update #1: Announcing our next feature and a new integration

Thanks for signing up for Jira Ops! I’m Matt Ryall, leader for the Jira Ops product team at Atlassian. Since this is a brand new product, we’ll be delivering improvements quickly and sharing updates...

356 views 0 8
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you