Author: ridabenjelloun
Date: Wed Oct  3 13:26:39 2007
New Revision: 581716

URL: http://svn.apache.org/viewvc?rev=581716&view=rev
Log:
TIKA-35 Close RereadableInputStream in MSExtractor and 
RereadableInputStreamTest classes.

Modified:
    incubator/tika/trunk/src/main/java/org/apache/tika/utils/MSExtractor.java
    
incubator/tika/trunk/src/test/java/org/apache/tika/RereadableInputStreamTest.java

Modified: 
incubator/tika/trunk/src/main/java/org/apache/tika/utils/MSExtractor.java
URL: 
http://svn.apache.org/viewvc/incubator/tika/trunk/src/main/java/org/apache/tika/utils/MSExtractor.java?rev=581716&r1=581715&r2=581716&view=diff
==============================================================================
--- incubator/tika/trunk/src/main/java/org/apache/tika/utils/MSExtractor.java 
(original)
+++ incubator/tika/trunk/src/main/java/org/apache/tika/utils/MSExtractor.java 
Wed Oct  3 13:26:39 2007
@@ -19,13 +19,13 @@
 // JDK imports
 import java.io.InputStream;
 
-import org.apache.tika.config.Content; // Jakarta POI imports
 import org.apache.log4j.Logger;
 import org.apache.poi.hpsf.PropertySetFactory;
 import org.apache.poi.hpsf.SummaryInformation;
 import org.apache.poi.poifs.eventfilesystem.POIFSReader;
 import org.apache.poi.poifs.eventfilesystem.POIFSReaderEvent;
 import org.apache.poi.poifs.eventfilesystem.POIFSReaderListener;
+import org.apache.tika.config.Content;
 
 /**
  * Defines a Microsoft document content extractor.
@@ -56,22 +56,26 @@
         * Extracts properties and text from an MS Document input stream
         */
        public void extract(InputStream input) throws Exception {
-               // First, extract properties
-               this.reader = new POIFSReader();
-
-               this.reader.registerListener(new PropertiesReaderListener(),
-                               SummaryInformation.DEFAULT_STREAM_NAME);
-
                RereadableInputStream ris = new RereadableInputStream(input,
                                MEMORY_THRESHOLD);
-               if (input.available() > 0) {
-                       reader.read(ris);
-               }
-               while (ris.read() != -1) {
+               try {
+                       // First, extract properties
+                       this.reader = new POIFSReader();
+
+                       this.reader.registerListener(new 
PropertiesReaderListener(),
+                                       SummaryInformation.DEFAULT_STREAM_NAME);
+
+                       if (input.available() > 0) {
+                               reader.read(ris);
+                       }
+                       while (ris.read() != -1) {
+                       }
+                       ris.rewind();
+                       // Extract document full text
+                       this.text = extractText(ris);
+               } finally {
+                       ris.close();
                }
-               ris.rewind();
-               // Extract document full text
-               this.text = extractText(ris);
        }
 
        /**

Modified: 
incubator/tika/trunk/src/test/java/org/apache/tika/RereadableInputStreamTest.java
URL: 
http://svn.apache.org/viewvc/incubator/tika/trunk/src/test/java/org/apache/tika/RereadableInputStreamTest.java?rev=581716&r1=581715&r2=581716&view=diff
==============================================================================
--- 
incubator/tika/trunk/src/test/java/org/apache/tika/RereadableInputStreamTest.java
 (original)
+++ 
incubator/tika/trunk/src/test/java/org/apache/tika/RereadableInputStreamTest.java
 Wed Oct  3 13:26:39 2007
@@ -36,18 +36,24 @@
        private final int NUM_PASSES = 4;
 
        public void test() throws IOException {
+
                File file = createTestFile();
                InputStream is = new BufferedInputStream(new 
FileInputStream(file));
                RereadableInputStream ris = new RereadableInputStream(is,
                                MEMORY_THRESHOLD);
-               for (int pass = 0; pass < NUM_PASSES; pass++) {
-                       for (int byteNum = 0; byteNum < TEST_SIZE; byteNum++) {
-                               int byteRead = ris.read();
-                               assertEquals("Pass = " + pass + ", byte num 
should be "
-                                               + byteNum + " but is " + 
byteRead + ".", byteNum,
-                                               byteRead);
+               try {
+                       for (int pass = 0; pass < NUM_PASSES; pass++) {
+                               for (int byteNum = 0; byteNum < TEST_SIZE; 
byteNum++) {
+                                       int byteRead = ris.read();
+                                       assertEquals("Pass = " + pass + ", byte 
num should be "
+                                                       + byteNum + " but is " 
+ byteRead + ".", byteNum,
+                                                       byteRead);
+                               }
+                               ris.rewind();
                        }
-                       ris.rewind();
+               } finally {
+                       is.close();
+                       ris.close();
                }
        }
 


Reply via email to