It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Need to include functionality after any type of editing issue.

After any type of editing issue(Normal Edit,Quick Edit,Inline Edit,SOAP Edit,REST Edit), I need to execute a

functionality immediately when update button is pressed.

How can we achieve this using Events/Listeners?

2 answers

1 accepted

0 votes
Answer accepted
Listeners sometimes are not getting called if I do no changes to the form, but required to get called.

e.g: If a customfield is selected then it should create an issue and link with the current issue.

       If I delete that link and simply updated the edit form, then listener should be invoked and it should again create a new issue and link with the current issue.

       but this is not happening with the listeners approach.

Sometimes listeners are getting called(because it is based on ISSUE_UPDATED event) when they is no requirement of call.

e.g: For Issue tab panels change and updations, it is getting called.

      this is unneccessarily happening with listeners approach.

Hence I choose the method in for edit, quickedit and inline edit. Although this is little clumpsy, we can perform our expected results if well documented. 

1 vote

Events are fired as a post-function on a transition or action.

To use this, write a listener that picks up the event(s) in question and runs your functionality.

Thanks Nic,

I tried to use Listener on Edit action in the following way

package com.mycompany.jira.plugins;

import com.atlassian.jira.event.issue.IssueEvent;

import org.springframework.beans.factory.DisposableBean;

import org.springframework.beans.factory.InitializingBean;

import com.atlassian.event.api.EventPublisher;

import com.atlassian.jira.event.type.EventType;

import com.atlassian.jira.issue.MutableIssue;

import com.atlassian.event.api.EventListener;

public class GlobalEditPostFunction implements InitializingBean,DisposableBean


private final EventPublisher eventPublisher;

public GlobalEditPostFunction(EventPublisher eventPublisher)





* Called when the plugin has been enabled.

* @throws Exception



public void afterPropertiesSet() throws Exception


// register ourselves with the EventPublisher




* Called when the plugin is being disabled or removed.

* @throws Exception



public void destroy() throws Exception


// unregister ourselves with the EventPublisher




public void onIssueEvent(IssueEvent issueEvent)


Long eventTypeId = issueEvent.getEventTypeId();

MutableIssue issue = (MutableIssue)issueEvent.getIssue();




System.out.println("Issue Testing");




But no changes are seen on console i.e. Sys out

Well, that's basically a copy of the code at with a renamed class (I'd suggest changing that name a bit as it implies it's a post-function to me, although it's clearly not when you read it)

As you're not getting "Test" in your output, that implies it's not running at all, so you need to debug why. Check that the listener is loading ok at Jira startup, check it's enabled, and check that you've added and configured it correctly.

yes Nic, The plugin installed and enabled successfully and also I placed Sysout stmts

in afterPropertiesSet() and in destroy() , they are executed well;but not in onIssueEvent() method

I guess the EventListener is not called in the plugin.

Have you cycled through a range of events for an issue? Create, edit, resolve? (Just a handful of the core ones is a good enough test)

Does your log file really contain absolutely nothing from the listener at all?

Yes the log and cmd prompt donot contain any sysouts.

Sorry, did you cycle through some edits/transitions on issues?

Yes, I checked with transitions as well as edit operation in different ways but it does not show any

effect in logs

Are you 100% sure you have configured the listener to execute?

If you are, then I'm completely stumped, as that code works perfectly for me here.

Hi NIc,

Now it is working for me by adding <Export-Package>...</Export-Package> in


Ahh, well spotted. I guess mine was working fine because I hadn't removed that line!

Suggest an answer

Log in or Sign up to answer
Community showcase
Published in Teamwork

Listening out loud: how Fabian Lopez works on distributed teams

The start of the COVID-19 pandemic served as a forcing function to re-evaluate the way teams worked together. In fact, many companies are re-learning how to collaborate with their teams. As some move...

58 views 2 1
Read article

Community Events

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

Find an event

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

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you