You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ri...@apache.org on 2007/10/03 22:26:40 UTC

svn commit: r581716 - in /incubator/tika/trunk/src: main/java/org/apache/tika/utils/MSExtractor.java test/java/org/apache/tika/RereadableInputStreamTest.java

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();
 		}
 	}