forked from kimhyungsik/ax_hub_mcp_tool
fix: ToolMetadata의 circuit breaker 관련 필드가 null일 경우 기본값을 사용하도록 수정하여 NPE 방지
This commit is contained in:
@@ -166,9 +166,17 @@ public class ExecuteService {
|
|||||||
|
|
||||||
private Object executeWithResilience(McpRequestContext context, ToolMetadata metadata, ObjectNode arguments, Map<String, Object> payload) {
|
private Object executeWithResilience(McpRequestContext context, ToolMetadata metadata, ObjectNode arguments, Map<String, Object> payload) {
|
||||||
RetryPolicy retryPolicy = retryPolicy(metadata, arguments);
|
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(),
|
CircuitBreaker circuitBreaker = circuitBreakerService.breaker("tool:" + metadata.getName(),
|
||||||
metadata.getCircuitBreakerFailureThreshold(),
|
failureThreshold, openMillis);
|
||||||
metadata.getCircuitBreakerOpenMillis());
|
|
||||||
|
|
||||||
ToolExecutionException lastError = null;
|
ToolExecutionException lastError = null;
|
||||||
for (int attempt = 1; attempt <= retryPolicy.maxAttempts(); attempt++) {
|
for (int attempt = 1; attempt <= retryPolicy.maxAttempts(); attempt++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user