Author: nick
Date: Mon Sep  8 17:44:51 2014
New Revision: 1623448

URL: http://svn.apache.org/r1623448
Log:
If we open a new NPOIFS object from a TikaInputStream, attach the opened 
container to the stream so it gets auto-closed when parsing is complete 
TIKA-1410

Modified:
    
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java

Modified: 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java?rev=1623448&r1=1623447&r2=1623448&view=diff
==============================================================================
--- 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java
 (original)
+++ 
tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java
 Mon Sep  8 17:44:51 2014
@@ -158,10 +158,15 @@ public class OfficeParser extends Abstra
                 root = ((NPOIFSFileSystem) container).getRoot();
             } else if (container instanceof DirectoryNode) {
                 root = (DirectoryNode) container;
-            } else if (tstream.hasFile()) {
-                root = new NPOIFSFileSystem(tstream.getFile(), true).getRoot();
             } else {
-                root = new NPOIFSFileSystem(new 
CloseShieldInputStream(tstream)).getRoot();
+                NPOIFSFileSystem fs;
+                if (tstream.hasFile()) {
+                    fs = new NPOIFSFileSystem(tstream.getFile(), true);
+                } else {
+                    fs = new NPOIFSFileSystem(new 
CloseShieldInputStream(tstream));
+                }
+                tstream.setOpenContainer(fs);
+                root = fs.getRoot();
             }
         }
         parse(root, context, metadata, xhtml);


Reply via email to