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

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git


The following commit(s) were added to refs/heads/master by this push:
     new c5e7099f35 [ENHANCEMENT] Explicitly close FileInputStream
c5e7099f35 is described below

commit c5e7099f3565218a48de507c093a8a624cad42e6
Author: Benoit TELLIER <[email protected]>
AuthorDate: Tue Apr 2 11:19:31 2024 +0200

    [ENHANCEMENT] Explicitly close FileInputStream
---
 .../src/main/java/org/apache/james/blob/api/Store.java            | 5 ++++-
 .../imapserver/netty/AbstractNettyImapRequestLineReader.java      | 8 +++++++-
 .../james/imapserver/netty/NettyStreamImapRequestLineReader.java  | 5 ++++-
 3 files changed, 15 insertions(+), 3 deletions(-)

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 0c5bf1c644..f13f36ea8f 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 @@ public interface Store<T, I> {
                     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 14be6d551a..44601671e2 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.ByteBuf;
 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 @@ public abstract class AbstractNettyImapRequestLineReader 
extends ImapRequestLine
         }
     }
 
+    @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 ee3d533a21..6ca2cdc0af 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 @@ public class NettyStreamImapRequestLineReader extends 
AbstractNettyImapRequestLi
 
         @Override
         public void close() {
-            Mono.fromRunnable(Throwing.runnable(() -> file.dispose()))
+            Mono.fromRunnable(Throwing.runnable(() -> {
+                    file.dispose();
+                    reader.close();
+                }))
                 .subscribeOn(Schedulers.boundedElastic())
                 .subscribe();
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to