fix: ToolMetadata의 circuit breaker 관련 필드가 null일 경우 기본값을 사용하도록 수정하여 NPE 방지

This commit is contained in:
jade
2026-07-15 15:59:43 +09:00
parent d87af0cc82
commit b431988ee6

View File

@@ -166,9 +166,17 @@ public class ExecuteService {
private Object executeWithResilience(McpRequestContext context, ToolMetadata metadata, ObjectNode arguments, Map<String, Object> payload) {
RetryPolicy retryPolicy = retryPolicy(metadata, arguments);
int failureThreshold = (metadata.getCircuitBreakerFailureThreshold() != null && metadata.getCircuitBreakerFailureThreshold() > 0)
? metadata.getCircuitBreakerFailureThreshold()
: properties.circuitBreakerFailureThreshold();
long openMillis = (metadata.getCircuitBreakerOpenMillis() != null && metadata.getCircuitBreakerOpenMillis() > 0)
? metadata.getCircuitBreakerOpenMillis()
: properties.circuitBreakerOpenMillis();
CircuitBreaker circuitBreaker = circuitBreakerService.breaker("tool:" + metadata.getName(),
metadata.getCircuitBreakerFailureThreshold(),
metadata.getCircuitBreakerOpenMillis());
failureThreshold, openMillis);
ToolExecutionException lastError = null;
for (int attempt = 1; attempt <= retryPolicy.maxAttempts(); attempt++) {