From b431988ee63b7e1faf07f58f481b6fa1f8a51aec Mon Sep 17 00:00:00 2001 From: jade Date: Wed, 15 Jul 2026 15:59:43 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20ToolMetadata=EC=9D=98=20circuit=20breake?= =?UTF-8?q?r=20=EA=B4=80=EB=A0=A8=20=ED=95=84=EB=93=9C=EA=B0=80=20null?= =?UTF-8?q?=EC=9D=BC=20=EA=B2=BD=EC=9A=B0=20=EA=B8=B0=EB=B3=B8=EA=B0=92?= =?UTF-8?q?=EC=9D=84=20=EC=82=AC=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=ED=95=98=EC=97=AC=20NPE=20=EB=B0=A9=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/mcp/gateway/service/ExecuteService.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/service/ExecuteService.java b/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/service/ExecuteService.java index 9947c62..536a390 100644 --- a/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/service/ExecuteService.java +++ b/axhub-gateway/src/main/java/io/shinhanlife/axhub/biz/mcp/gateway/service/ExecuteService.java @@ -166,9 +166,17 @@ public class ExecuteService { private Object executeWithResilience(McpRequestContext context, ToolMetadata metadata, ObjectNode arguments, Map 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++) {