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
Community showcase
Posted yesterday in Canada

Happy New Year - First AUG of the year - great success

Hi Everyone, Hope everyone had a great holiday season and is ready for an exciting 2019.  We had our first AUG last night featuring Tempo Timesheets.  A great presentation and lots of int...

17 views 0 1
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