2017-02-17 49 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

看起來像我的重複代碼運行的初始謂詞是錯誤的。當特定條件爲假時,我沒有看到代碼可以多次運行。由於最初的問題是錯誤的,因此結束。