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打开一个新线程)。