Author: fanningpj
Date: Thu Oct 26 14:59:54 2023
New Revision: 1913350

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

Modified:
    
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/XSSFTestDataSamples.java
    
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java

Modified: 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/XSSFTestDataSamples.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/XSSFTestDataSamples.java?rev=1913350&r1=1913349&r2=1913350&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/XSSFTestDataSamples.java 
(original)
+++ 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/XSSFTestDataSamples.java 
Thu Oct 26 14:59:54 2023
@@ -52,8 +52,7 @@ public class XSSFTestDataSamples {
         }
     }
     public static XSSFWorkbook openSampleWorkbook(String sampleName) {
-        InputStream is = HSSFTestDataSamples.openSampleFileStream(sampleName);
-        try {
+        try (InputStream is = 
HSSFTestDataSamples.openSampleFileStream(sampleName)) {
             return new XSSFWorkbook(is);
         } catch (IOException e) {
             throw new RuntimeException(e);

Modified: 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java?rev=1913350&r1=1913349&r2=1913350&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
 Thu Oct 26 14:59:54 2023
@@ -80,6 +80,7 @@ import java.io.ByteArrayInputStream;
 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.nio.charset.StandardCharsets;
@@ -1448,6 +1449,18 @@ public final class TestXSSFWorkbook exte
     }
 
     @Test
+    void testWorkbookCloseDoesNotCloseInputStream() throws Exception {
+        try (WrappedStream stream = new WrappedStream(
+                HSSFTestDataSamples.openSampleFileStream("github-321.xlsx"))) {
+            try (XSSFWorkbook wb = new XSSFWorkbook(stream)) {
+                XSSFSheet xssfSheet = wb.getSheetAt(0);
+                assertNotNull(xssfSheet);
+            }
+            assertFalse(stream.isClosed(), "stream should noy be closed by 
XSSFWorkbook");
+        }
+    }
+
+    @Test
     void readFromZipStream() throws IOException {
         File tempFile = TempFile.createTempFile("poitest", ".zip");
         try {
@@ -1492,4 +1505,21 @@ public final class TestXSSFWorkbook exte
         return new CellReference(cell).formatAsString();
     }
 
+    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