IssueEvent EventListener method called twice in plugin

Hello,

I am currently trying to get into jira plugin development.

My issue is that my EventListener for IssueEvent gets called twice with the same data, which makes things complicated for me.

The method onIssueEvent gets called twice:

@ExportAsService
@Component
@Named("IssueModificationListener")
public class IssueModificationListener implements DisposableBean, InitializingBean, LifecycleAware {

    @ComponentImport
    private final ApplicationProperties applicationProperties;
    @ComponentImport
    private final EventPublisher eventPublisher;
    @ComponentImport
    private final LifecycleManager lifecycleManager;

    @Inject
    public IssueModificationListener(ApplicationProperties applicationProperties, EventPublisher eventPublisher, LifecycleManager lifecycleManager) {
        this.applicationProperties = applicationProperties;
        this.eventPublisher = eventPublisher;
        this.lifecycleManager = lifecycleManager;
        eventPublisher.register(this);
    }

    public void destroy() throws Exception {

    }

    public void afterPropertiesSet() throws Exception {
        eventPublisher.register(this);
    }

    public void onStart() {

    }

    @EventListener
    public void onIssueEvent(IssueEvent issueEvent) {
        Long eventTypeId = issueEvent.getEventTypeId();
        Issue issue = issueEvent.getIssue();
        if (eventTypeId.equals(EventType.ISSUE_COMMENTED_ID)) {
            System.out.println("Issue commented on");
        } else if (eventTypeId.equals(EventType.ISSUE_COMMENT_EDITED_ID)) {
            System.out.println("Comment edited");
        } else if (eventTypeId.equals(EventType.ISSUE_COMMENT_DELETED_ID)) {
            System.out.println("Comment deleted");
        }
    }
}

Resulting in the following output:

[INFO] [talledLocalContainer] Comment deleted
[INFO] [talledLocalContainer] Comment deleted

Is there anything I can do to prevent this from happening?

The used jira version is 6.4.12

 

Thanks in advance!

1 answer

Actually, I just see that eventPublisher.register(this) gets called twice, once in the constructor and in afterPropertiesSet... That might explain things.

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published Thursday in Marketplace Apps

Tips on how to choose the best estimation method for your planning

Planning and grooming sessions all come with their own sets of rules. Team members meet to estimate stories or other work items, all according to an agreed-upon process. And with every session comes ...

71 views 0 11
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