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

jiangtian pushed a commit to branch fix_query_deletion_test
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/fix_query_deletion_test by 
this push:
     new 952fdfc  fix potential duplicate close in TsFileIOWriter
952fdfc is described below

commit 952fdfc4c2968814e5ccf764ae0f8ecf47038490
Author: 江天 <[email protected]>
AuthorDate: Thu Apr 4 10:51:44 2019 +0800

    fix potential duplicate close in TsFileIOWriter
---
 .../apache/iotdb/tsfile/write/writer/NativeRestorableIOWriter.java  | 6 ++----
 .../java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java   | 3 +++
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/NativeRestorableIOWriter.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/NativeRestorableIOWriter.java
index 2496d42..543287c 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/NativeRestorableIOWriter.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/NativeRestorableIOWriter.java
@@ -64,14 +64,12 @@ public class NativeRestorableIOWriter extends 
TsFileIOWriter {
     if (file.exists()) {
       try (TsFileSequenceReader reader = new 
TsFileSequenceReader(file.getAbsolutePath(), false)) {
         if (reader.isComplete() && !append) {
-          canWrite = false;
-          out.close();
+          forceClose();
           return;
         }
         truncatedPosition = reader.selfCheck(knownSchemas, 
chunkGroupMetaDataList, !append);
         if (truncatedPosition == TsFileCheckStatus.COMPLETE_FILE && !append) {
-            this.canWrite = false;
-            out.close();
+          forceClose();
         } else if (truncatedPosition == TsFileCheckStatus.INCOMPATIBLE_FILE) {
           out.close();
           throw new IOException(
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
index 5d0a2a7..d5dfbc2 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java
@@ -326,6 +326,9 @@ public class TsFileIOWriter {
    * close the inputstream or file channel in force. This is just used for 
Testing.
    */
   void forceClose() throws IOException {
+    if (!this.canWrite) {
+      return;
+    }
     canWrite = false;
     out.close();
   }

Reply via email to