Allowing create statement from bad connection (#12444)
* seems not necessary
* Revert "seems not necessary"
This reverts commit 1f786173f183ca3f0f5bb75856deedd7a9032450.
* I hope so
diff --git a/integration-test/src/main/java/org/apache/iotdb/itbase/runtime/ClusterTestStatement.java b/integration-test/src/main/java/org/apache/iotdb/itbase/runtime/ClusterTestStatement.java
index 552244b..c6b139a 100644
--- a/integration-test/src/main/java/org/apache/iotdb/itbase/runtime/ClusterTestStatement.java
+++ b/integration-test/src/main/java/org/apache/iotdb/itbase/runtime/ClusterTestStatement.java
@@ -20,6 +20,9 @@
import org.apache.iotdb.jdbc.Config;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
@@ -31,9 +34,10 @@
/** The implementation of {@link ClusterTestStatement} in cluster test. */
public class ClusterTestStatement implements Statement {
+ private static final Logger LOGGER = LoggerFactory.getLogger(ClusterTestStatement.class);
private static final int DEFAULT_QUERY_TIMEOUT = 120;
- private final Statement writeStatement;
- private final String writEndpoint;
+ private Statement writeStatement;
+ private String writEndpoint;
private final List<Statement> readStatements = new ArrayList<>();
private final List<String> readEndpoints = new ArrayList<>();
private boolean closed = false;
@@ -41,16 +45,28 @@
private int queryTimeout = DEFAULT_QUERY_TIMEOUT;
private int fetchSize = Config.DEFAULT_FETCH_SIZE;
- public ClusterTestStatement(NodeConnection writeConnection, List<NodeConnection> readConnections)
- throws SQLException {
- this.writeStatement = writeConnection.getUnderlyingConnecton().createStatement();
- updateConfig(writeStatement, 0);
- writEndpoint = writeConnection.toString();
+ public ClusterTestStatement(
+ NodeConnection writeConnection, List<NodeConnection> readConnections) {
+ try {
+ this.writeStatement = writeConnection.getUnderlyingConnecton().createStatement();
+ updateConfig(writeStatement, 0);
+ writEndpoint = writeConnection.toString();
+ } catch (SQLException e) {
+ LOGGER.warn("Failed to create write statement.", e);
+ }
+
for (NodeConnection readConnection : readConnections) {
- Statement readStatement = readConnection.getUnderlyingConnecton().createStatement();
- this.readStatements.add(readStatement);
- this.readEndpoints.add(readConnection.toString());
- updateConfig(readStatement, queryTimeout);
+ try {
+ Statement readStatement = readConnection.getUnderlyingConnecton().createStatement();
+ this.readStatements.add(readStatement);
+ this.readEndpoints.add(readConnection.toString());
+ updateConfig(readStatement, queryTimeout);
+ } catch (SQLException e) {
+ LOGGER.warn("Cannot create read statement from connection {}.", readConnection, e);
+ }
+ }
+ if (readStatements.isEmpty()) {
+ LOGGER.warn("Failed to create any read statement.");
}
}