You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/05/22 08:53:20 UTC
[incubator-iotdb] 01/01: fix checkTimeseries exception
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch fix_checkTimeseries
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit 68b27cdb8f5ae482f2280400d225c834ed5a726c
Author: qiaojialin <64...@qq.com>
AuthorDate: Fri May 22 16:53:17 2020 +0800
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 +++++-
3 files changed, 12 insertions(+), 9 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.