openjdk version "21.0.12" 2026-07-21 test 가 검증하는 성질 : close() 뒤에 httpclient-runtime-drain 스레드가 없어야 한다 [자원 경계 묶음이 도는 모양] 임차를 쥐지 않고 회전한다 회전 49회 동안 관측된 drain 스레드 최대치 : 0 닫힌 세대 : 50 / close() 후 drain 스레드 : 0 [강제 닫기 하나가 던지는 경로] swap 직후 drain 스레드 : 1 1회차 close() : IllegalStateException: pool refused to close / drain 스레드 1 거부한 런타임 state : CLOSED / 자원 닫기 호출 1회 다시 forceClose 후 자원 닫기 호출 : 1회 2회차 close() : 정상 반환 / drain 스레드 0 [강제 닫기가 하나도 던지지 않는데 스레드가 남는 경로] 마감 작업이 도는 중 drain 스레드 : 1 강제 닫기가 던진 것 : 없음 1회차 close() : IllegalStateException: http client drain scheduler did not terminate (5000ms) 1회차 후 drain 스레드 : 1 2회차 close() : 정상 반환 / drain 스레드 1