]> source.dussan.org Git - poi.git/commitdiff
Make SlideShow closeable as of HSLF references a NPOIFSFileSystem and hasn't closed it
authorAndreas Beeker <kiwiwings@apache.org>
Sat, 31 Oct 2015 23:10:17 +0000 (23:10 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Sat, 31 Oct 2015 23:10:17 +0000 (23:10 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1711706 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/sl/usermodel/SlideShow.java
src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java
src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java

index 968911b95f19eeb22d3eb532bcd5b06cd2979e6d..9d4a5cf9dc0385ef923b13d729879f74e5b91901 100644 (file)
@@ -18,6 +18,7 @@
 package org.apache.poi.sl.usermodel;
 
 import java.awt.Dimension;
+import java.io.Closeable;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.List;
@@ -27,7 +28,7 @@ import org.apache.poi.sl.usermodel.PictureData.PictureType;
 public interface SlideShow<
     S extends Shape<S,P>,
     P extends TextParagraph<S,P,?>
-> {
+> extends Closeable {
        Slide<S,P> createSlide() throws IOException;
 
        List<? extends Slide<S,P>> getSlides();
index 46a356fec9aff94138942fc43cbf4eac693d4ca6..1162cbaa487b9eaa64502c2f0f1ab4e7e05cccf6 100644 (file)
@@ -20,6 +20,7 @@ package org.apache.poi.hslf.usermodel;
 import java.awt.Dimension;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.Closeable;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -88,7 +89,7 @@ import org.apache.poi.util.Units;
  * @author Nick Burch
  * @author Yegor kozlov
  */
-public final class HSLFSlideShow implements SlideShow<HSLFShape,HSLFTextParagraph> {
+public final class HSLFSlideShow implements SlideShow<HSLFShape,HSLFTextParagraph>, Closeable {
        // What we're based on
        private HSLFSlideShowImpl _hslfSlideShow;
 
@@ -1157,4 +1158,9 @@ public final class HSLFSlideShow implements SlideShow<HSLFShape,HSLFTextParagrap
         // TODO Auto-generated method stub
         return null;
     }
+
+    @Override
+    public void close() throws IOException {
+        _hslfSlideShow.close();
+    }
 }
index d45b7cb996e419d7baea0342619b87fabbd2203f..d27b6f050b9daea41425aea1003a4932f2e8934b 100644 (file)
@@ -19,6 +19,7 @@ package org.apache.poi.hslf.usermodel;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -64,7 +65,7 @@ import org.apache.poi.util.POILogger;
  *
  * @author Nick Burch
  */
-public final class HSLFSlideShowImpl extends POIDocument {
+public final class HSLFSlideShowImpl extends POIDocument implements Closeable {
     public static final int UNSET_OFFSET = -1;
     
     // For logging
@@ -795,6 +796,14 @@ public final class HSLFSlideShowImpl extends POIDocument {
         return _objects;
     }
     
+    @Override
+    public void close() throws IOException {
+        NPOIFSFileSystem fs = directory.getFileSystem();
+        if (fs != null) {
+            fs.close();
+        }
+    }
+    
     
     private static class BufAccessBAOS extends ByteArrayOutputStream {
         public byte[] getBuf() {