Terminate update issue event, with custom error

How can terminate update issue event, with custom error from Java code.
I need to be able, to terminate it if new value for some field is not valid. And it be just wonderful if I can show Error message after that.

Thanks for help!

1 answer

1 accepted

0 votes
Accepted answer

This is exactly what workflow validators are for - they'll throw a "pass" or "fail, with error message".

But those only happen in the workflow. Other events (such as comment, edit, add workflow etc) do NOT have any validators you can hook into. You can make listeners that catch them, but it's too late at that point and there's no feedback to the users.

Thank you for quick replay, can you help me with one more question - is it possible to validate Issue Links on 'creation' step with workflow validator? I need to be sure that user will choose at least one 'implements' link.

Yes, you can, as long as you have the "links" field on screen for them (that is only available on later versions of Jira). When your validator runs, it has access to the current issue data (which is empty for new issues) and the data the user has entered. So you can indeed iterate through all the links the users have added, have a look at their type and return a "fail" if you don't find any called "implements"

Can you please be more specific.
I've tried to find links that user added with ComponentAccessor.getIssueLinkManager().getOutwardLinks(issueId) inside my validate() method.
This only gives me NullPointerExecption, I guess it's because the Issue is not yet created and ComponentAccessor dont know about this Issue.
Can you tell how exactly I can obtain 'Linked Issues' field values in 'Create Issue' dialog window?

Can you be more specific.
How can I get information from this field. I used issue.getExternalFieldValue("issuelinks") and it's gave strange Object. How to obtain real data from it, to what class I need to cast it?

It's a list of link objects, not a case of casting it, but iterating through the list and reading each link object for its type.

List of IssueLink's ?

List<IssueLink> links = (List<IssueLink>) issue.getExternalFieldValue("issuelinks");

gives exception :
com.atlassian.jira.issue.fields.IssueLinksSystemField$IssueLinkingValue$Builder$1 cannot be cast to java.util.List

how can I iterate through such object?

Sorry, no, I'm going in the wrong direction there. Although I've said use the links field, it's not really a field, it's a place to capture links. You should be able to iterate through the links on the incoming issue. However, I've only ever done this with something linke issueLinkManager.getLinkCollection(issue, user) on existing issues, so I'm not entirely sure itl work on create.

Suggest an answer

Log in or Sign up to answer
Community showcase
Published Jan 08, 2019 in Jira

How to Jira for designers

I’m a designer on the Jira team. For a long time, I’ve fielded questions from other designers about how they should be using Jira Software with their design team. I’ve also heard feedback from other ...

1,098 views 4 9
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