From eaee586a17b95fbe2fd63b99e5cfda62b000dd09 Mon Sep 17 00:00:00 2001 From: BePPPower Date: Fri, 10 May 2024 17:29:57 +0800 Subject: [PATCH] fix 1 --- be/src/vec/runtime/vorc_transformer.cpp | 2 +- be/src/vec/runtime/vparquet_transformer.cpp | 15 +++++++-------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/be/src/vec/runtime/vorc_transformer.cpp b/be/src/vec/runtime/vorc_transformer.cpp index 7cd5b9ad10d50d..30198f8f7cd0b3 100644 --- a/be/src/vec/runtime/vorc_transformer.cpp +++ b/be/src/vec/runtime/vorc_transformer.cpp @@ -77,8 +77,8 @@ VOrcOutputStream::~VOrcOutputStream() { void VOrcOutputStream::close() { if (!_is_closed) { + Defer defer {[this] { _is_closed = true; }}; Status st = _file_writer->close(); - _is_closed = true; if (!st.ok()) { LOG(WARNING) << "close orc output stream failed: " << st; throw std::runtime_error(st.to_string()); diff --git a/be/src/vec/runtime/vparquet_transformer.cpp b/be/src/vec/runtime/vparquet_transformer.cpp index 0e5800750b0a35..561bc72613104a 100644 --- a/be/src/vec/runtime/vparquet_transformer.cpp +++ b/be/src/vec/runtime/vparquet_transformer.cpp @@ -99,15 +99,14 @@ arrow::Result ParquetOutputStream::Tell() const { } arrow::Status ParquetOutputStream::Close() { - if (_is_closed) { - return arrow::Status::OK(); - } - Status st = _file_writer->close(); - if (!st.ok()) { - LOG(WARNING) << "close parquet output stream failed: " << st; - return arrow::Status::IOError(st.to_string()); + if (!_is_closed) { + Defer defer {[this] { _is_closed = true; }}; + Status st = _file_writer->close(); + if (!st.ok()) { + LOG(WARNING) << "close parquet output stream failed: " << st; + return arrow::Status::IOError(st.to_string()); + } } - _is_closed = true; return arrow::Status::OK(); }