Java JIRA插件多次运行一行代码

Java JIRA插件多次运行一行代码,java,sql,plugins,jira,dao,Java,Sql,Plugins,Jira,Dao,我有一个JIRA侦听器插件,可以捕获问题事件,检查它是否是“创建的问题”事件,并执行操作。尽管出于某种原因,一行特定的代码似乎在停止之前运行了多次(我知道这一点,因为特定的日志消息被显示了好几次,应该只显示一次)。以下是我所说的jist: onCreatedEvent(IssueEvent event) { Issue issue = event.getIssue(); if (event.getEventTypeId().equals(EventType.ISSUE_CRE

我有一个JIRA侦听器插件,可以捕获问题事件,检查它是否是“创建的问题”事件,并执行操作。尽管出于某种原因,一行特定的代码似乎在停止之前运行了多次(我知道这一点,因为特定的日志消息被显示了好几次,应该只显示一次)。以下是我所说的jist:

onCreatedEvent(IssueEvent event) {
     Issue issue = event.getIssue();
     if (event.getEventTypeId().equals(EventType.ISSUE_CREATED_ID) {
         // Build needed object (custom class) -> this is the line running multiple times
         BetterIssue betterIssue = BetterIssueFactory.setIssue(issue).build();
         BetterIssueDAO.createBetterIssue(betterIssue);
         // More code below...
     }
}
关于
更好的假设的想法如下:

public abstract BetterIssueFactory() {
    private static Issue issue;
    public static void build() {
         // Grabs data from JIRA issue using ComponentAccessor...
    }
    public void setIssue(Issue issue) {
        this.issue = issue;
    }
    // More code...
}

我的猜测是DAO(它访问SQL server并将此对象放入表中)在某种程度上阻止了这行代码的正确执行,直到查询运行完成。注意:我发布的代码都没有打开单独的线程来执行此操作,这都是按顺序运行的(除非PreparedStatement.execute/executeQuery打开一个新线程)。

看起来我运行重复代码的初始谓词是错误的。当特定条件为false时,我没有看到代码可以在哪里多次运行。由于初始问题错误而关闭此操作。

看起来我运行重复代码的初始谓词是错误的。当特定条件为false时,我没有看到代码可以在哪里多次运行。由于初始问题错误,因此关闭此项