From: PJ Fanning Date: Sat, 9 Oct 2021 13:21:25 +0000 (+0000) Subject: [bug-64542] allow file channel closing to be controlled by calling code X-Git-Tag: REL_5_2_0~417 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=6659536325b4976f709e95fa372f82bfcda6754c;p=poi.git [bug-64542] allow file channel closing to be controlled by calling code git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894069 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/poi/src/main/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java b/poi/src/main/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java index 1a625f38d0..e7ff65e01e 100644 --- a/poi/src/main/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java +++ b/poi/src/main/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java @@ -174,10 +174,13 @@ public class POIFSFileSystem extends BlockStore * *

Note that with this constructor, you will need to call {@link #close()} * when you're done to have the underlying Channel closed, as the channel is - * kept open during normal operation to read the data out.

+ * kept open during normal operation to read the data out. For legacy reasons, + * the channel is not closed if there is an error creating the POIFSFileSystem.

* * @param channel the FileChannel from which to read the data * @throws IOException on errors reading, or on invalid data + * @see POIFSFileSystem(FileChannel, boolean, boolean) this constructor gives more control over whether to + * close the provided channel */ public POIFSFileSystem(FileChannel channel) throws IOException { @@ -190,11 +193,14 @@ public class POIFSFileSystem extends BlockStore * *

Note that with this constructor, you will need to call {@link #close()} * when you're done to have the underlying Channel closed, as the channel is - * kept open during normal operation to read the data out.

+ * kept open during normal operation to read the data out. For legacy reasons, + * the channel is not closed if there is an error creating the POIFSFileSystem.

* * @param channel the FileChannel from which to read or read/write the data * @param readOnly whether the POIFileSystem will only be used in read-only mode * @throws IOException on errors reading, or on invalid data + * @see POIFSFileSystem(FileChannel, boolean, boolean) this constructor gives more control over whether to + * close the provided channel */ public POIFSFileSystem(FileChannel channel, boolean readOnly) throws IOException {