This is an automated email from the ASF dual-hosted git repository.

rong pushed a commit to branch check-shit
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 39a59e2e785ebd11b87ad8b593ea14d25a8d5e2c
Author: Steve Yurong Su <[email protected]>
AuthorDate: Thu Jul 10 15:18:11 2025 +0800

    fix shit
---
 .../connector/protocol/IoTDBConfigRegionConnector.java     |  8 ++++----
 .../pipe/connector/protocol/IoTDBSslSyncConnector.java     | 14 +++++++++++---
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/connector/protocol/IoTDBConfigRegionConnector.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/connector/protocol/IoTDBConfigRegionConnector.java
index c3a1c0dd522..351887d2cfc 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/connector/protocol/IoTDBConfigRegionConnector.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/connector/protocol/IoTDBConfigRegionConnector.java
@@ -149,7 +149,7 @@ public class IoTDBConfigRegionConnector extends 
IoTDBSslSyncConnector {
 
   private void doTransfer(final PipeConfigRegionWritePlanEvent 
pipeConfigRegionWritePlanEvent)
       throws PipeException {
-    final Pair<IoTDBSyncClient, Boolean> clientAndStatus = 
clientManager.getClient();
+    final Pair<IoTDBSyncClient, Boolean> clientAndStatus = 
getClientManager().getClient();
 
     final TPipeTransferResp resp;
     try {
@@ -175,7 +175,7 @@ public class IoTDBConfigRegionConnector extends 
IoTDBSslSyncConnector {
     final TSStatus status = resp.getStatus();
     // Send handshake req and then re-transfer the event
     if (status.getCode() == 
TSStatusCode.PIPE_CONFIG_RECEIVER_HANDSHAKE_NEEDED.getStatusCode()) {
-      clientManager.sendHandshakeReq(clientAndStatus);
+      getClientManager().sendHandshakeReq(clientAndStatus);
     }
     // Only handle the failed statuses to avoid string format performance 
overhead
     if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()
@@ -214,7 +214,7 @@ public class IoTDBConfigRegionConnector extends 
IoTDBSslSyncConnector {
     final long creationTime = snapshotEvent.getCreationTime();
     final File snapshotFile = snapshotEvent.getSnapshotFile();
     final File templateFile = snapshotEvent.getTemplateFile();
-    final Pair<IoTDBSyncClient, Boolean> clientAndStatus = 
clientManager.getClient();
+    final Pair<IoTDBSyncClient, Boolean> clientAndStatus = 
getClientManager().getClient();
 
     // 1. Transfer snapshotFile, and template File if exists
     transferFilePieces(
@@ -265,7 +265,7 @@ public class IoTDBConfigRegionConnector extends 
IoTDBSslSyncConnector {
     final TSStatus status = resp.getStatus();
     // Send handshake req and then re-transfer the event
     if (status.getCode() == 
TSStatusCode.PIPE_CONFIG_RECEIVER_HANDSHAKE_NEEDED.getStatusCode()) {
-      clientManager.sendHandshakeReq(clientAndStatus);
+      getClientManager().sendHandshakeReq(clientAndStatus);
     }
     // Only handle the failed statuses to avoid string format performance 
overhead
     if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/protocol/IoTDBSslSyncConnector.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/protocol/IoTDBSslSyncConnector.java
index eeb32ee5810..82886e11ffe 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/protocol/IoTDBSslSyncConnector.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/protocol/IoTDBSslSyncConnector.java
@@ -66,7 +66,14 @@ public abstract class IoTDBSslSyncConnector extends 
IoTDBConnector {
 
   private static final Logger LOGGER = 
LoggerFactory.getLogger(IoTDBSslSyncConnector.class);
 
-  protected IoTDBSyncClientManager clientManager;
+  protected volatile IoTDBSyncClientManager clientManager;
+
+  protected IoTDBSyncClientManager getClientManager() {
+    if (clientManager == null) {
+      throw new IllegalStateException("IoTDB sync client manager has been 
closed");
+    }
+    return clientManager;
+  }
 
   @Override
   public void validate(final PipeParameterValidator validator) throws 
Exception {
@@ -153,7 +160,7 @@ public abstract class IoTDBSslSyncConnector extends 
IoTDBConnector {
 
   @Override
   public void handshake() throws Exception {
-    clientManager.checkClientStatusAndTryReconstructIfNecessary();
+    getClientManager().checkClientStatusAndTryReconstructIfNecessary();
   }
 
   @Override
@@ -229,7 +236,7 @@ public abstract class IoTDBSslSyncConnector extends 
IoTDBConnector {
         // Send handshake req and then re-transfer the event
         if (status.getCode()
             == 
TSStatusCode.PIPE_CONFIG_RECEIVER_HANDSHAKE_NEEDED.getStatusCode()) {
-          clientManager.sendHandshakeReq(clientAndStatus);
+          getClientManager().sendHandshakeReq(clientAndStatus);
         }
         // Only handle the failed statuses to avoid string format performance 
overhead
         if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()
@@ -255,6 +262,7 @@ public abstract class IoTDBSslSyncConnector extends 
IoTDBConnector {
   public void close() {
     if (clientManager != null) {
       clientManager.close();
+      clientManager = null;
     }
 
     super.close();

Reply via email to