2017-02-17 8 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... 
} 

내 생각 엔 그거 SQL 서버에 액세스하고로이 객체를두고 DAO (테이블)은 쿼리 실행이 완료 될 때까지이 코드 행을 올바르게 실행하지 못하게합니다. 참고 : 내가 게시 한 코드 중 아무 것도이를 수행하기 위해 별도의 스레드를 열지 않습니다. PreparedStatement.execute/executeQuery가 새 스레드를 열지 않는 한 순서대로 실행됩니다.

답변

0

중복 코드 실행 중 내 초기 조건이 잘못되었습니다. 특정 조건이 거짓 일 때 코드가 여러 번 실행될 수있는 곳을 보지 못했습니다. 초기 질문이 잘못되어 닫힙니다.