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 {