How to display a nice error message when a Jira servlet plugin gets an error or exception?

I am trying to port a plugin from an ancient version of Jira to make it Jira 5.x compatible and I do want to display nice messages when someting goes wrong, messages that will appear in the UI.

The plugin is a servlet that is using velocity templates (.vm) for the pages.

I do want to display AUI Error message when an error occurs or an exception inside the plugin.

Is this possible how?

2 answers

Gather the errors in a catch block and add them to the velocity context.

try {
....
} catch (Throwable t) {
      velocityContext.add("error", true);
      velocityContext.add("error.message", "Some error message");
}

... and then check the $error in the velocity file.

Tell me pls, how to get velocityContext?

Thanks for fast answer. I have another question:

when I catched exception what do I need to display this velocity?

The velocity context is a simple map of <String, Object> which you can create by yourself. If you'd like a "basic" velocity context with some common utilities pre-filled, you can use the static methods of JiraVelocityHelper or JiraVelocityUtils to create one.

It actually depends on where you are doing this. What is the feature that you're trying to implement?

I have issue listener and need display errors for users

Listeners do not have feedback mechanisms for users.

You need to change the process at the front end (i.e. the action lands at a different place from where Jira normally sends it), write data in the listener for something else to pick up later, or write the listener so that it pokes data at an alternative way of notifying a user that there has been an error (e.g. email)

I assume you mean you don't want to use email, and you don't want to write data to be picked up later in Jira.

That leaves you with changing the landing point of a process. To do this, you need to pull apart the core code that starts your process (for example, an issue transition), work out how it decides the end point, and change that. You'll then need to provide a screen for display, and your listener will have to write data somewhere so that the screen can display it.

This is quite hard and complex. I'd suggest that you tell us what your actual requirement is, as there may well be a better way to do it than "use a listener and wedge in feedback"

I need display velocity immediatly for user (don't email). Where to forward this action?

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted Friday in United States

Confluence Security Advisory

Good morning Members, Not sure if you are aware. Please read the following: https://www.icloud.com/keynote/0RyJ4VEdNUpjDpGfMhfZx9fEg#Confluence_Security_Advisor More details: https://co...

61 views 1 0
View post

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