2017-02-17 51 views
1

我有一个JIRA侦听器插件,用于捕获问题事件,检查它是否为“已创建问题”事件,并执行操作。虽然由于某种原因,特定的代码行似乎在停止之前运行多次(我知道这是因为特定的日志消息正在多次显示,应该只显示一次)。以下是我在谈论的JIST:JIRA插件多次运行单行代码

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... 
    } 
} 

什么BetterIssueFactory样子理念:

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服务器,并把这个对象为一个表)以某种方式保持这行代码正确执行,直到查询运行完成。注意:我发布的任何代码都没有打开单独的线程来执行此操作,这些都是按顺序运行的(除非PreparedStatement.execute/executeQuery打开一个新线程)。

回答

0

看起来像我的重复代码运行的初始谓词是错误的。当特定条件为假时,我没有看到代码可以多次运行。由于最初的问题是错误的,因此结束。