From 6659536325b4976f709e95fa372f82bfcda6754c Mon Sep 17 00:00:00 2001
From: PJ Fanning
Date: Sat, 9 Oct 2021 13:21:25 +0000
Subject: [PATCH] [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
---
.../apache/poi/poifs/filesystem/POIFSFileSystem.java | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
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 {