[ENHANCEMENT] Explicitly close FileInputStream
diff --git a/server/blob/blob-common/src/main/java/org/apache/james/blob/api/Store.java b/server/blob/blob-common/src/main/java/org/apache/james/blob/api/Store.java
index 0c5bf1c..f13f36e 100644
--- a/server/blob/blob-common/src/main/java/org/apache/james/blob/api/Store.java
+++ b/server/blob/blob-common/src/main/java/org/apache/james/blob/api/Store.java
@@ -121,7 +121,10 @@
FileBackedOutputStream out = new FileBackedOutputStream(FILE_THRESHOLD);
try {
long size = in.transferTo(out);
- return Mono.just(new DelegateCloseableByteSource(out.asByteSource(), out::reset, size));
+ return Mono.just(new DelegateCloseableByteSource(out.asByteSource(), () -> {
+ out.reset();
+ out.close();
+ }, size));
} catch (Exception e) {
out.reset();
out.close();
diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/AbstractNettyImapRequestLineReader.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/AbstractNettyImapRequestLineReader.java
index 14be6d5..4460167 100644
--- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/AbstractNettyImapRequestLineReader.java
+++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/AbstractNettyImapRequestLineReader.java
@@ -18,6 +18,8 @@
****************************************************************/
package org.apache.james.imapserver.netty;
+import java.io.Closeable;
+import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.function.Supplier;
@@ -27,7 +29,7 @@
import io.netty.buffer.Unpooled;
import io.netty.channel.Channel;
-public abstract class AbstractNettyImapRequestLineReader extends ImapRequestLineReader {
+public abstract class AbstractNettyImapRequestLineReader extends ImapRequestLineReader implements Closeable {
private static final Supplier<ByteBuf> CONTINUATION_REQUEST = () -> Unpooled.wrappedUnmodifiableBuffer(Unpooled.wrappedBuffer("+ Ok\r\n".getBytes(StandardCharsets.US_ASCII)));
private final Channel channel;
@@ -49,4 +51,8 @@
}
}
+ @Override
+ public void close() throws IOException {
+
+ }
}
diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyStreamImapRequestLineReader.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyStreamImapRequestLineReader.java
index ee3d533..6ca2cdc 100644
--- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyStreamImapRequestLineReader.java
+++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyStreamImapRequestLineReader.java
@@ -55,7 +55,10 @@
@Override
public void close() {
- Mono.fromRunnable(Throwing.runnable(() -> file.dispose()))
+ Mono.fromRunnable(Throwing.runnable(() -> {
+ file.dispose();
+ reader.close();
+ }))
.subscribeOn(Schedulers.boundedElastic())
.subscribe();
}