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打開一個新線程)。