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