This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new b1d3dc63c9e [IOTDB-6265] Construct SessionPool using empty nodeUrls
should throw exception
b1d3dc63c9e is described below
commit b1d3dc63c9e248568929dc153803a927f4e337d4
Author: Jackie Tien <[email protected]>
AuthorDate: Tue Dec 12 13:54:28 2023 +0800
[IOTDB-6265] Construct SessionPool using empty nodeUrls should throw
exception
---
.../src/main/java/org/apache/iotdb/session/Session.java | 8 +++++++-
.../main/java/org/apache/iotdb/session/pool/SessionPool.java | 8 +++++++-
.../src/test/java/org/apache/iotdb/session/SessionTest.java | 12 ++++++++++++
.../apache/iotdb/session/pool/SessionPoolExceptionTest.java | 12 ++++++++++++
4 files changed, 38 insertions(+), 2 deletions(-)
diff --git
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
index 80de5ab3acf..63290421dd9 100644
--- a/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
+++ b/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java
@@ -373,6 +373,9 @@ public class Session implements ISession {
int thriftMaxFrameSize,
boolean enableRedirection,
Version version) {
+ if (nodeUrls.isEmpty()) {
+ throw new IllegalArgumentException("nodeUrls shouldn't be empty.");
+ }
this.nodeUrls = nodeUrls;
this.username = username;
this.password = password;
@@ -385,7 +388,10 @@ public class Session implements ISession {
}
public Session(Builder builder) {
- if (builder.nodeUrls != null && builder.nodeUrls.size() > 0) {
+ if (builder.nodeUrls != null) {
+ if (builder.nodeUrls.isEmpty()) {
+ throw new IllegalArgumentException("nodeUrls shouldn't be empty.");
+ }
this.nodeUrls = builder.nodeUrls;
this.enableQueryRedirection = true;
} else {
diff --git
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java
index 094da90a2d2..fa569c94e28 100644
---
a/iotdb-client/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java
+++
b/iotdb-client/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java
@@ -418,6 +418,9 @@ public class SessionPool implements ISessionPool {
this.maxSize = maxSize;
this.host = null;
this.port = -1;
+ if (nodeUrls.isEmpty()) {
+ throw new IllegalArgumentException("nodeUrls shouldn't be empty.");
+ }
this.nodeUrls = nodeUrls;
this.user = user;
this.password = password;
@@ -452,7 +455,10 @@ public class SessionPool implements ISessionPool {
this.version = builder.version;
this.thriftDefaultBufferSize = builder.thriftDefaultBufferSize;
this.thriftMaxFrameSize = builder.thriftMaxFrameSize;
- if (builder.nodeUrls != null && builder.nodeUrls.size() > 0) {
+ if (builder.nodeUrls != null) {
+ if (builder.nodeUrls.isEmpty()) {
+ throw new IllegalArgumentException("nodeUrls shouldn't be empty.");
+ }
this.nodeUrls = builder.nodeUrls;
this.host = null;
this.port = -1;
diff --git
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/SessionTest.java
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/SessionTest.java
index 49713d91269..14085e9fe69 100644
---
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/SessionTest.java
+++
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/SessionTest.java
@@ -49,11 +49,13 @@ import java.io.IOException;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
public class SessionTest {
@@ -1180,4 +1182,14 @@ public class SessionTest {
throws IoTDBConnectionException, StatementExecutionException {
session.getBackupConfiguration();
}
+
+ @Test
+ public void testEmptyNodeUrls() {
+ try {
+ ISession failedSession = new Session(Collections.emptyList(), "root",
"root");
+ fail();
+ } catch (IllegalArgumentException e) {
+ assertEquals("nodeUrls shouldn't be empty.", e.getMessage());
+ }
+ }
}
diff --git
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolExceptionTest.java
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolExceptionTest.java
index e9ea2882b1c..8e6a16c12e9 100644
---
a/iotdb-client/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolExceptionTest.java
+++
b/iotdb-client/session/src/test/java/org/apache/iotdb/session/pool/SessionPoolExceptionTest.java
@@ -43,6 +43,7 @@ import org.powermock.reflect.Whitebox;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -50,6 +51,7 @@ import java.util.concurrent.ConcurrentLinkedDeque;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyList;
@@ -263,4 +265,14 @@ public class SessionPoolExceptionTest {
assertTrue(e instanceof IoTDBConnectionException);
}
}
+
+ @Test
+ public void testEmptyNodeUrls() {
+ try {
+ ISessionPool failedSession = new SessionPool(Collections.emptyList(),
"root", "root", 1);
+ fail();
+ } catch (IllegalArgumentException e) {
+ assertEquals("nodeUrls shouldn't be empty.", e.getMessage());
+ }
+ }
}