Skip to content

Commit e190cb5

Browse files
iamsanjaymalakarlhotari
authored andcommitted
[fix][offload] Close all resources in BlobStoreBackedReadHandleImplV2.closeAsync (#25296)
(cherry picked from commit c83cafc)
1 parent f072ae1 commit e190cb5

1 file changed

Lines changed: 26 additions & 4 deletions

File tree

tiered-storage/jcloud/src/main/java/org/apache/bookkeeper/mledger/offload/jcloud/impl/BlobStoreBackedReadHandleImplV2.java

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,15 +133,37 @@ public CompletableFuture<Void> closeAsync() {
133133
CompletableFuture<Void> promise = closeFuture.get();
134134
executor.execute(() -> {
135135
try {
136+
IOException first = null;
136137
for (OffloadIndexBlockV2 indexBlock : indices) {
137-
indexBlock.close();
138+
try {
139+
indexBlock.close();
140+
} catch (IOException e) {
141+
if (first == null) {
142+
first = e;
143+
} else {
144+
first.addSuppressed(e);
145+
}
146+
}
138147
}
139148
for (DataInputStream dataStream : dataStreams) {
140-
dataStream.close();
149+
try {
150+
dataStream.close();
151+
} catch (IOException e) {
152+
if (first == null) {
153+
first = e;
154+
} else {
155+
first.addSuppressed(e);
156+
}
157+
}
158+
}
159+
state = State.Closed;
160+
if (first != null) {
161+
promise.completeExceptionally(first);
162+
} else {
163+
promise.complete(null);
141164
}
165+
} catch (Throwable t) {
142166
state = State.Closed;
143-
promise.complete(null);
144-
} catch (IOException t) {
145167
promise.completeExceptionally(t);
146168
}
147169
});

0 commit comments

Comments
 (0)