# execute 진입부 — 세 가드와 그 거부 경로 83: if (!circuitBreaker.tryAcquirePermission()) { 85: throw new HttpCircuitOpenException( 88: if (!rateLimiter.tryAcquirePermission()) { 90: throw new HttpRateLimitRejectedException( 93: if (!bulkhead.tryAcquire()) { 94: rateLimiter.onCompleted(); 96: throw new HttpBulkheadRejectedException( 120: rateLimiter.onCompleted(); # 정상 경로의 반납 private void releaseAttemptPermits() { bulkhead.release(); rateLimiter.onCompleted(); } # AttemptCircuitBreaker 의 추상 연산 전수 boolean tryAcquirePermission(); void onSuccess(long durationNanos); void onError(long durationNanos, Throwable failure); String state(); # releasePermission — src 아래 java 매치 수 0 # releasePermission 이 등장하는 파일 (저장소 전체) docs/superpowers/specs/2026-07-27-httpclient-production-capability-design.md