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();
 

Reply via email to