問題イベントをキャプチャし、それが「作成済みの問題」イベントであるかどうかを確認してアクションを実行するJIRAリスナプラグインがあります。何らかの理由でコードの特定の行が停止する前に複数回実行されているように見えますが(特定のログメッセージが複数回表示されているので、これはわかります。ここで私が話しているかのJISTは次のとおりです。1行のコードを複数回実行する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...
}
私の推測ではあるもののSQLサーバーにアクセスしにこのオブジェクトを置くDAO(テーブル)は、クエリの実行が完了するまで、このコード行が正しく実行されていない状態になっています。注:私が投稿したコードは、これを行うために別のスレッドを開きません。これは、PreparedStatement.execute/executeQueryが新しいスレッドを開くまでは、すべて順番に実行されます。