Author: fanningpj
Date: Thu Oct 26 15:19:42 2023
New Revision: 1913352

URL: http://svn.apache.org/viewvc?rev=1913352&view=rev
Log:
[bug-67579] test that we close input stream

Modified:
    
poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java

Modified: 
poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java?rev=1913352&r1=1913351&r2=1913352&view=diff
==============================================================================
--- 
poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java 
(original)
+++ 
poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java 
Thu Oct 26 15:19:42 2023
@@ -32,6 +32,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
+import java.io.FilterInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -1231,4 +1232,34 @@ public final class TestHSSFWorkbook exte
             }
         }
     }
+
+    @Test
+    void testWorkbookCloseClosesInputStream() throws Exception {
+        try (WrappedStream stream = new WrappedStream(
+                HSSFTestDataSamples.openSampleFileStream("49423.xls"))) {
+            try (HSSFWorkbook wb = new HSSFWorkbook(stream)) {
+                HSSFSheet hssfSheet = wb.getSheetAt(0);
+                assertNotNull(hssfSheet);
+            }
+            assertTrue(stream.isClosed(), "stream should be closed by 
HSSFWorkbook");
+        }
+    }
+
+    private static class WrappedStream extends FilterInputStream {
+        private boolean closed;
+
+        WrappedStream(InputStream stream) {
+            super(stream);
+        }
+
+        @Override
+        public void close() throws IOException {
+            super.close();
+            closed = true;
+        }
+
+        boolean isClosed() {
+            return closed;
+        }
+    }
 }



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

Reply via email to