Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Attachment create event does not fire when attachment is created through Java

Aamir Murtaza
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
June 29, 2021

I hope someone is familiar with Atlassian SDK for Jira Server.

I try to catch an event when an attachment is added to Jira Issue. Here is my code listening to issue events:

@Component
public class IssueEventListener implements InitializingBean, DisposableBean {

    private static final Logger log = LoggerFactory.getLogger(IssueEventListener.class);

    @JiraImport
    private final EventPublisher eventPublisher;

    @Autowired
    public IssueEventListener(EventPublisher eventPublisher) {
        this.eventPublisher = eventPublisher;
    }

    @Override
    public void destroy() throws Exception {
        log.info("Disabling plugin");
        eventPublisher.unregister(this);
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        log.info("Enabling plugin");
        eventPublisher.register(this);
    }

    @EventListener
    public void onIssueEvent(IssueEvent issueEvent) {
        Long eventTypeId = issueEvent.getEventTypeId();
        Issue issue = issueEvent.getIssue();

        if (eventTypeId.equals(EventType.ISSUE_CREATED_ID)) {
            log.warn("Issue {} has been created at {}.", issue.getKey(), issue.getCreated());
            System.out.println("issue created");
        } 
        else if (eventTypeId.equals(EventType.ISSUE_UPDATED_ID)) {
            log.warn("Issue {} has been updated (Attachment created/deleted at {}.", issue.getKey(), issue.getUpdated());
            System.out.println("issue updated");
        }

    }
}

Here is the code for attachment creation:

CreateAttachmentParamsBean attachmentParamsBean = new CreateAttachmentParamsBean.Builder(new File(path),
                filename, "text/plain", context.getLoggedInUser(),
                issue).build();
        ChangeItemBean bean = ComponentAccessor.getAttachmentManager().createAttachment(attachmentParamsBean);

This code adds an attachment to the issue, but the event is not fired and issue history does not show that attachment also. On the other hand, when I add an attachment through Jira issue page manually, the event is fired and history shows an attachment too. So what is the problem with this code? Thanks in advance

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events