Author: tpalsulich
Date: Sat Mar 14 22:00:41 2015
New Revision: 1666756

URL: http://svn.apache.org/r1666756
Log:
TIKA-1117. Don't let iWorkPackageParser close the given InputStream.

Modified:
    
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java
    
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java

Modified: 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java?rev=1666756&r1=1666755&r2=1666756&view=diff
==============================================================================
--- 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java
 (original)
+++ 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java
 Sat Mar 14 22:00:41 2015
@@ -216,7 +216,7 @@ public class IWorkPackageParser extends
             
             entry = zip.getNextZipEntry();
         }
-        zip.close();
+        // Don't close the zip InputStream (TIKA-1117).
     }
 
 }

Modified: 
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java?rev=1666756&r1=1666755&r2=1666756&view=diff
==============================================================================
--- 
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java
 (original)
+++ 
tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/iwork/IWorkParserTest.java
 Sat Mar 14 22:00:41 2015
@@ -49,6 +49,20 @@ public class IWorkParserTest {
         parseContext.set(Parser.class, new AutoDetectParser());
     }
 
+    /**
+     * Check the given InputStream is not closed by the Parser (TIKA-1117).
+     *
+     * @throws Exception
+     */
+    @Test
+    public void testStreamNotClosed() throws Exception {
+        InputStream input = 
IWorkParserTest.class.getResourceAsStream("/test-documents/testKeynote.key");
+        Metadata metadata = new Metadata();
+        ContentHandler handler = new BodyContentHandler();
+        iWorkParser.parse(input, handler, metadata, parseContext);
+        input.read();   // Will throw an Exception if the stream was already 
closed.
+    }
+
     @Test
     public void testParseKeynote() throws Exception {
         InputStream input = 
IWorkParserTest.class.getResourceAsStream("/test-documents/testKeynote.key");


Reply via email to