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 Friday in Europe

Venue Needed! 23rd October

Hey Everyone! Unfortunately, the venue that was hosting us on the 23rd has pulled out so we're looking for a new venue.    If anyone would have a room free that we could use on the ev...

32 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