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

szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ratis.git


The following commit(s) were added to refs/heads/master by this push:
     new f773ac4f RATIS-1634. Close SegmentedRaftLogReader if init failed. 
(#693)
f773ac4f is described below

commit f773ac4f0dfe477befd86b2ef2a9606f4301996a
Author: Riguz Lee <[email protected]>
AuthorDate: Sat Jul 23 01:24:03 2022 +0800

    RATIS-1634. Close SegmentedRaftLogReader if init failed. (#693)
---
 .../raftlog/segmented/SegmentedRaftLogInputStream.java      | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git 
a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogInputStream.java
 
b/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogInputStream.java
index c4d9e8d2..e445b1ab 100644
--- 
a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogInputStream.java
+++ 
b/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogInputStream.java
@@ -90,13 +90,16 @@ public class SegmentedRaftLogInputStream implements 
Closeable {
 
   private void init() throws IOException {
     state.open();
+    boolean initSuccess = false;
     try {
-      final SegmentedRaftLogReader r = new SegmentedRaftLogReader(logFile, 
raftLogMetrics);
-      if (r.verifyHeader()) {
-        reader = r;
-      }
+      reader = new SegmentedRaftLogReader(logFile, raftLogMetrics);
+      initSuccess = reader.verifyHeader();
     } finally {
-      if (reader == null) {
+      if (!initSuccess) {
+        if(reader != null) {
+          reader.close();
+          reader = null;
+        }
         state.close();
       }
     }

Reply via email to