Skip to content

Commit 5f37ae6

Browse files
committed
fix: ensure the VolatileReadData closes on InputStream close
Signed-off-by: Caleb Hulbert <cmhulbert@gmail.com>
1 parent 5a8340d commit 5f37ae6

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

src/main/java/org/janelia/saalfeldlab/n5/BufferedKvaLockedChannel.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package org.janelia.saalfeldlab.n5;
22

3+
import org.apache.commons.io.input.ProxyInputStream;
34
import org.janelia.saalfeldlab.n5.readdata.ReadData;
5+
import org.janelia.saalfeldlab.n5.readdata.VolatileReadData;
46

57
import java.io.*;
68

@@ -23,7 +25,15 @@ public Reader newReader() throws N5Exception.N5IOException {
2325

2426
@Override
2527
public InputStream newInputStream() throws N5Exception.N5IOException {
26-
return kva.createReadData(key).inputStream();
28+
29+
VolatileReadData volatileReadData = kva.createReadData(key);
30+
return new ProxyInputStream(volatileReadData.inputStream()) {
31+
@Override
32+
public void close() throws IOException {
33+
volatileReadData.close();
34+
super.close();
35+
}
36+
};
2737
}
2838

2939
@Override

0 commit comments

Comments
 (0)