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 <[email protected]> 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.
