]> source.dussan.org Git - poi.git/commitdiff
File leak detector: Close streams in some tests
authorDominik Stadler <centic@apache.org>
Sun, 4 May 2014 08:05:32 +0000 (08:05 +0000)
committerDominik Stadler <centic@apache.org>
Sun, 4 May 2014 08:05:32 +0000 (08:05 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1592315 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hpsf/MutablePropertySet.java
src/testcases/org/apache/poi/hpsf/basic/TestWrite.java
src/testcases/org/apache/poi/hpsf/basic/Util.java

index 83277920795c27466efbe780028feeb252e677aa..c95671f28759f7572f29ec710ec4d62ae5e5ac5b 100644 (file)
@@ -269,8 +269,11 @@ public class MutablePropertySet extends PropertySet
         throws IOException, WritingNotSupportedException
     {
         final ByteArrayOutputStream psStream = new ByteArrayOutputStream();
-        write(psStream);
-        psStream.close();
+        try {
+            write(psStream);
+        } finally {
+            psStream.close();
+        }
         final byte[] streamData = psStream.toByteArray();
         return new ByteArrayInputStream(streamData);
     }
index c6552a7a2ea535c354adba6f1224b4c7e5e1950f..757036151fb9a6eefb6b06d34d0096f4cc302955 100644 (file)
@@ -189,7 +189,12 @@ public class TestWrite
         final POIFSReader r = new POIFSReader();
         r.registerListener(new MyPOIFSReaderListener(),
                            SummaryInformation.DEFAULT_STREAM_NAME);
-        r.read(new FileInputStream(filename));
+        FileInputStream stream = new FileInputStream(filename);
+        try {
+            r.read(stream);
+        } finally {
+            stream.close();
+        }
     }
 
 
@@ -251,7 +256,13 @@ public class TestWrite
 
             },
             SummaryInformation.DEFAULT_STREAM_NAME);
-        r.read(new FileInputStream(filename));
+        
+        InputStream stream = new FileInputStream(filename);
+        try {
+            r.read(stream);
+        } finally {
+            stream.close();
+        }
         assertNotNull(psa[0]);
         assertTrue(psa[0].isSummaryInformation());
 
@@ -329,7 +340,12 @@ public class TestWrite
                 }
             },
             STREAM_NAME);
-        r.read(new FileInputStream(filename));
+        FileInputStream stream = new FileInputStream(filename);
+        try {
+            r.read(stream);
+        } finally {
+            stream.close();
+        }
         assertNotNull(psa[0]);
         Section s = (Section) (psa[0].getSections().get(0));
         assertEquals(s.getFormatID(), formatID);
@@ -996,20 +1012,22 @@ public class TestWrite
     @Test
     public void dictionaryWithInvalidCodepage() throws IOException, HPSFException
     {
+        final File copy = TempFile.createTempFile("Test-HPSF", "ole2");
+        copy.deleteOnExit();
+        
+        /* Write: */
+        final OutputStream out = new FileOutputStream(copy);
+        
+        final POIFSFileSystem poiFs = new POIFSFileSystem();
+        final MutablePropertySet ps1 = new MutablePropertySet();
+        final MutableSection s = (MutableSection) ps1.getSections().get(0);
+        final Map<Long,String> m = new HashMap<Long, String>(3, 1.0f);
+        m.put(Long.valueOf(1), "String 1");
+        m.put(Long.valueOf(2), "String 2");
+        m.put(Long.valueOf(3), "String 3");
+
         try
         {
-            final File copy = TempFile.createTempFile("Test-HPSF", "ole2");
-            copy.deleteOnExit();
-
-            /* Write: */
-            final OutputStream out = new FileOutputStream(copy);
-            final POIFSFileSystem poiFs = new POIFSFileSystem();
-            final MutablePropertySet ps1 = new MutablePropertySet();
-            final MutableSection s = (MutableSection) ps1.getSections().get(0);
-            final Map<Long,String> m = new HashMap<Long, String>(3, 1.0f);
-            m.put(Long.valueOf(1), "String 1");
-            m.put(Long.valueOf(2), "String 2");
-            m.put(Long.valueOf(3), "String 3");
             s.setDictionary(m);
             s.setFormatID(SectionIDMap.DOCUMENT_SUMMARY_INFORMATION_ID[0]);
             int codepage = 12345;
@@ -1022,6 +1040,7 @@ public class TestWrite
         }
         catch (IllegalPropertySetDataException ex)
         {
+            out.close();
             assertTrue(true);
         }
     }
index 1262c750d83ae19ac4efd90da0231707233d68ca..3af8cd94f90aa493daa566618367c2d65792511d 100644 (file)
@@ -229,7 +229,13 @@ final class Util {
         r.registerListener(pfl);
 
         /* Read the POI filesystem. */
-        r.read(new FileInputStream(poiFs));
+        FileInputStream stream = new FileInputStream(poiFs);
+        try {
+            r.read(stream);
+        } finally {
+            stream.close();
+        }
+
         POIFile[] result = new POIFile[files.size()];
         for (int i = 0; i < result.length; i++)
             result[i] = (POIFile) files.get(i);