Terminate update issue event, with custom error

Pylypenko Artem June 9, 2014

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
Answer accepted
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
June 9, 2014

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.

Pylypenko Artem June 10, 2014

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.

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
June 10, 2014

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"

Pylypenko Artem June 10, 2014

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?

Pylypenko Artem June 10, 2014

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?

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
June 10, 2014

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.

Pylypenko Artem June 10, 2014

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?

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
June 11, 2014

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