2017-02-17 29 views
1

У меня есть плагин для прослушивания JIRA, который захватывает события событий, проверяет, было ли это событие «созданной проблемы», и выполняет действие. Хотя по какой-то причине определенная строка кода работает несколько раз перед остановкой (я знаю это, так как определенные сообщения о регистрации отображаются несколько раз, что следует видеть только один раз). Вот тэк, о чем я говорю:JIRA Plugin работает с одной строкой кода несколько раз

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

Похоже, что мой первоначальный предикат повторяющегося кода работает неправильно. Я не видел, где код может выполняться несколько раз, когда определенное условие было ложным. Закрытие этого из-за неправильного первоначального вопроса.