SNR#3521 쿼리 취소 경로의 이중 예외로 쿼리가 종료되지 않거나 하위 쿼리 취소가 중단되는 문제 해결

버전: 4.0.2609.0

두 오류가 잇달아 겹치는 드문 상황에서 쿼리가 종료되지 않고 무한정 대기하거나, 취소 처리 중에 하위 쿼리 정리가 중단되는 문제를 해결했습니다.

쿼리 시작(초기화) 단계에서 예외가 발생하고 뒤이은 취소 처리에서도 예외가 발생하는 이중 오류가 겹치면, 쿼리의 종료 처리가 이루어지지 않아 해당 쿼리가 끝나지 않은 상태로 남았습니다. 이런 경우 배치 규칙(예약된 쿼리)이나 데이터 삭제 작업처럼 쿼리 종료를 기다리는 후속 작업도 함께 멈췄습니다. 또한 아직 실행되지 않은 하위 쿼리를 취소할 때 오류가 발생해(NullPointerException) 나머지 하위 쿼리의 취소 처리가 중단되는 문제도 있었습니다.

이제 두 상황 모두 예외 발생 여부와 관계없이 쿼리 종료 처리가 항상 수행되도록 수정했습니다.