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