diff --git a/src/main/java/org/tikv/common/TiSession.java b/src/main/java/org/tikv/common/TiSession.java index 0cc4b3329d3..f46479df7ec 100644 --- a/src/main/java/org/tikv/common/TiSession.java +++ b/src/main/java/org/tikv/common/TiSession.java @@ -542,6 +542,10 @@ private synchronized void shutdown(boolean now) throws Exception { if (metricsServer != null) { metricsServer.close(); } + + if (circuitBreaker != null) { + circuitBreaker.close(); + } } if (now) { diff --git a/src/main/java/org/tikv/raw/SmartRawKVClient.java b/src/main/java/org/tikv/raw/SmartRawKVClient.java index 02e75625fc5..31cf97a7364 100644 --- a/src/main/java/org/tikv/raw/SmartRawKVClient.java +++ b/src/main/java/org/tikv/raw/SmartRawKVClient.java @@ -66,12 +66,6 @@ public SmartRawKVClient(RawKVClientBase client, CircuitBreaker breaker) { this.circuitBreaker = breaker; } - @Override - public void close() throws Exception { - circuitBreaker.close(); - client.close(); - } - @Override public void put(ByteString key, ByteString value) { callWithCircuitBreaker("put", () -> client.put(key, value)); @@ -268,6 +262,11 @@ private void callWithCircuitBreaker(String funcName, Function0 func) { }); } + @Override + public void close() throws Exception { + client.close(); + } + public interface Function1 { T apply(); }