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();
