This is an automated email from the ASF dual-hosted git repository.

haonan 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 0abbee3afbf fix session sessionDataSet unclose when use export tsfile 
tool (#11131)
0abbee3afbf is described below

commit 0abbee3afbf7df04deeab8e2fc3223bdd4effda0
Author: Zhijia Cao <[email protected]>
AuthorDate: Wed Sep 13 14:07:11 2023 +0800

    fix session sessionDataSet unclose when use export tsfile tool (#11131)
---
 .../src/main/java/org/apache/iotdb/tool/ExportTsFile.java  | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git 
a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java 
b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java
index 0240132b253..4ebde4c3180 100644
--- a/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java
+++ b/iotdb-client/cli/src/main/java/org/apache/iotdb/tool/ExportTsFile.java
@@ -278,11 +278,9 @@ public class ExportTsFile extends AbstractTsFileTool {
    */
   private static void dumpResult(String sql, int index) {
     final String path = targetDirectory + targetFile + index + ".tsfile";
-    try {
-      SessionDataSet sessionDataSet = session.executeQueryStatement(sql, 
timeout);
+    try (SessionDataSet sessionDataSet = session.executeQueryStatement(sql, 
timeout)) {
       long start = System.currentTimeMillis();
       writeTsFileFile(sessionDataSet, path);
-      sessionDataSet.closeOperationHandle();
       long end = System.currentTimeMillis();
       IoTPrinter.println("Export completely!cost: " + (end - start) + " ms.");
     } catch (StatementExecutionException
@@ -317,10 +315,12 @@ public class ExportTsFile extends AbstractTsFileTool {
         TSDataType tsDataType = getTsDataType(columnTypes.get(i));
         Path path = new Path(column, true);
         String deviceId = path.getDevice();
-        List<Field> deviceList =
-            session.executeQueryStatement("show devices " + deviceId, 
timeout).next().getFields();
-        if (deviceList.size() > 1 && 
"true".equals(deviceList.get(1).getStringValue())) {
-          deviceFilterSet.add(deviceId);
+        try (SessionDataSet deviceDataSet =
+            session.executeQueryStatement("show devices " + deviceId, 
timeout)) {
+          List<Field> deviceList = deviceDataSet.next().getFields();
+          if (deviceList.size() > 1 && 
"true".equals(deviceList.get(1).getStringValue())) {
+            deviceFilterSet.add(deviceId);
+          }
         }
         MeasurementSchema measurementSchema =
             new MeasurementSchema(path.getMeasurement(), tsDataType);

Reply via email to