This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 54ae2c3 fix checkTimeseries exception (#1243)
54ae2c3 is described below
commit 54ae2c3b4257f217e2d10df9a73906e8ffeadebc
Author: Jialin Qiao <[email protected]>
AuthorDate: Fri May 22 17:45:05 2020 +0800
fix checkTimeseries exception (#1243)
* fix checkTimeseries exception
---
.../src/main/java/org/apache/iotdb/SessionExample.java | 2 +-
session/src/main/java/org/apache/iotdb/session/Session.java | 13 ++++++-------
.../java/org/apache/iotdb/session/pool/SessionPool.java | 6 +++++-
.../test/java/org/apache/iotdb/session/IoTDBSessionIT.java | 3 ++-
4 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/example/session/src/main/java/org/apache/iotdb/SessionExample.java
b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
index 13b2bb0..d28faf6 100644
--- a/example/session/src/main/java/org/apache/iotdb/SessionExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
@@ -93,7 +93,7 @@ public class SessionExample {
}
private static void createMultiTimeseries()
- throws IoTDBConnectionException, BatchExecutionException {
+ throws IoTDBConnectionException, BatchExecutionException,
StatementExecutionException {
if (!session.checkTimeseriesExists("root.sg1.d2.s1") && !session
.checkTimeseriesExists("root.sg1.d2.s2")) {
diff --git a/session/src/main/java/org/apache/iotdb/session/Session.java
b/session/src/main/java/org/apache/iotdb/session/Session.java
index e3bc1ae..b574c9f 100644
--- a/session/src/main/java/org/apache/iotdb/session/Session.java
+++ b/session/src/main/java/org/apache/iotdb/session/Session.java
@@ -594,13 +594,12 @@ public class Session {
}
}
- public boolean checkTimeseriesExists(String path) throws
IoTDBConnectionException {
- try {
- return executeQueryStatement(String.format("SHOW TIMESERIES %s",
path)).hasNext();
- } catch (Exception e) {
- logger.error("meet error when check Timeseries {}", path, e);
- throw new IoTDBConnectionException(e);
- }
+ public boolean checkTimeseriesExists(String path)
+ throws IoTDBConnectionException, StatementExecutionException {
+ SessionDataSet dataSet = executeQueryStatement(String.format("SHOW
TIMESERIES %s", path));
+ boolean result = dataSet.hasNext();
+ dataSet.closeOperationHandle();
+ return result;
}
private synchronized String getTimeZone()
diff --git
a/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java
b/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java
index 4478307..17135fb 100644
--- a/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java
+++ b/session/src/main/java/org/apache/iotdb/session/pool/SessionPool.java
@@ -647,7 +647,8 @@ public class SessionPool {
}
}
- public boolean checkTimeseriesExists(String path) throws
IoTDBConnectionException {
+ public boolean checkTimeseriesExists(String path)
+ throws IoTDBConnectionException, StatementExecutionException {
for (int i = 0; i < RETRY; i++) {
Session session = getSession();
try {
@@ -657,6 +658,9 @@ public class SessionPool {
} catch (IoTDBConnectionException e) {
// TException means the connection is broken, remove it and get a new
one.
cleanSessionAndMayThrowConnectionException(session, i, e);
+ } catch (StatementExecutionException e) {
+ putBack(session);
+ throw e;
}
}
//never go here.
diff --git a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java
b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java
index 8cfb4d1..cbfe569 100644
--- a/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java
+++ b/session/src/test/java/org/apache/iotdb/session/IoTDBSessionIT.java
@@ -155,7 +155,8 @@ public class IoTDBSessionIT {
}
@Test
- public void testCreateMultiTimeseries() throws IoTDBConnectionException,
BatchExecutionException {
+ public void testCreateMultiTimeseries()
+ throws IoTDBConnectionException, BatchExecutionException,
StatementExecutionException {
session = new Session("127.0.0.1", 6667, "root", "root");
session.open();