Index: tika-parsers/src/test/java/org/apache/tika/parser/xml/DcXMLParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/xml/DcXMLParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/xml/DcXMLParserTest.java	(revision )
@@ -34,9 +34,8 @@
 
     @Test
     public void testXMLParserAsciiChars() throws Exception {
-        InputStream input = DcXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testXML.xml");
-        try {
+        try (InputStream input = DcXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testXML.xml")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new DcXMLParser().parse(input, handler, metadata);
@@ -46,20 +45,20 @@
                     metadata.get(Metadata.CONTENT_TYPE));
             assertEquals("Tika test document", metadata.get(TikaCoreProperties.TITLE));
             assertEquals("Rida Benjelloun", metadata.get(TikaCoreProperties.CREATOR));
-            
+
             // The file contains 5 dc:subject tags, which come through as
             //  a multi-valued Tika Metadata entry in file order
             assertEquals(true, metadata.isMultiValued(TikaCoreProperties.KEYWORDS));
-            assertEquals(5,      metadata.getValues(TikaCoreProperties.KEYWORDS).length);
+            assertEquals(5, metadata.getValues(TikaCoreProperties.KEYWORDS).length);
             assertEquals("Java", metadata.getValues(TikaCoreProperties.KEYWORDS)[0]);
-            assertEquals("XML",  metadata.getValues(TikaCoreProperties.KEYWORDS)[1]);
+            assertEquals("XML", metadata.getValues(TikaCoreProperties.KEYWORDS)[1]);
             assertEquals("XSLT", metadata.getValues(TikaCoreProperties.KEYWORDS)[2]);
             assertEquals("JDOM", metadata.getValues(TikaCoreProperties.KEYWORDS)[3]);
             assertEquals("Indexation", metadata.getValues(TikaCoreProperties.KEYWORDS)[4]);
             assertEquals(true, metadata.isMultiValued(Metadata.SUBJECT));
-            assertEquals(5,      metadata.getValues(Metadata.SUBJECT).length);
+            assertEquals(5, metadata.getValues(Metadata.SUBJECT).length);
             assertEquals("Java", metadata.getValues(Metadata.SUBJECT)[0]);
-            assertEquals("XML",  metadata.getValues(Metadata.SUBJECT)[1]);
+            assertEquals("XML", metadata.getValues(Metadata.SUBJECT)[1]);
             assertEquals("XSLT", metadata.getValues(Metadata.SUBJECT)[2]);
             assertEquals("JDOM", metadata.getValues(Metadata.SUBJECT)[3]);
             assertEquals("Indexation", metadata.getValues(Metadata.SUBJECT)[4]);
@@ -77,24 +76,19 @@
 
             String content = handler.toString();
             assertContains("Tika test document", content);
-            
+
             assertEquals("2000-12-01T00:00:00.000Z", metadata.get(TikaCoreProperties.CREATED));
-        } finally {
-            input.close();
         }
     }
     
     @Test
     public void testXMLParserNonAsciiChars() throws Exception {
-        InputStream input = DcXMLParserTest.class.getResourceAsStream("/test-documents/testXML.xml");
-        try {
+        try (InputStream input = DcXMLParserTest.class.getResourceAsStream("/test-documents/testXML.xml")) {
             Metadata metadata = new Metadata();
             new DcXMLParser().parse(input, new DefaultHandler(), metadata);
-            
+
             final String expected = "Archim\u00E8de et Lius \u00E0 Ch\u00E2teauneuf testing chars en \u00E9t\u00E9";
-            assertEquals(expected,metadata.get(TikaCoreProperties.RIGHTS));
+            assertEquals(expected, metadata.get(TikaCoreProperties.RIGHTS));
-        } finally {
-            input.close();
         }
     }
 
Index: tika-parsers/src/main/java/org/apache/tika/parser/gdal/GDALParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/gdal/GDALParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/gdal/GDALParser.java	(revision )
@@ -384,14 +384,11 @@
     private String extractOutput(InputStream stream) throws SAXException,
             IOException {
         StringBuilder sb = new StringBuilder();
-        Reader reader = new InputStreamReader(stream, UTF_8);
-        try {
+        try (Reader reader = new InputStreamReader(stream, UTF_8)) {
             char[] buffer = new char[1024];
             for (int n = reader.read(buffer); n != -1; n = reader.read(buffer)) {
                 sb.append(buffer, 0, n);
             }
-        } finally {
-            reader.close();
         }
         return sb.toString();
     }
@@ -400,8 +397,7 @@
                                String output) throws SAXException, IOException {
         XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
         InputStream stream = new ByteArrayInputStream(output.getBytes(UTF_8));
-        Reader reader = new InputStreamReader(stream, UTF_8);
-        try {
+        try (Reader reader = new InputStreamReader(stream, UTF_8)) {
             xhtml.startDocument();
             xhtml.startElement("p");
             char[] buffer = new char[1024];
@@ -411,7 +407,6 @@
             xhtml.endElement("p");
 
         } finally {
-            reader.close();
             xhtml.endDocument();
         }
 
Index: tika-example/src/main/java/org/apache/tika/example/MetadataAwareLuceneIndexer.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-example/src/main/java/org/apache/tika/example/MetadataAwareLuceneIndexer.java	(revision 1696828)
+++ tika-example/src/main/java/org/apache/tika/example/MetadataAwareLuceneIndexer.java	(revision )
@@ -46,8 +46,7 @@
 
 	public void indexContentSpecificMet(File file) throws Exception {
 		Metadata met = new Metadata();
-		InputStream is = new FileInputStream(file);
-		try {
+		try (InputStream is = new FileInputStream(file)) {
 			tika.parse(is, met);
 			Document document = new Document();
 			for (String key : met.names()) {
@@ -57,8 +56,6 @@
 				}
 				writer.addDocument(document);
 			}
-		} finally {
-			is.close();
 		}
 	}
 
@@ -74,8 +71,7 @@
 		met.add(Metadata.SUBJECT, "Metadata");
 		met.set(Property.externalClosedChoise(Metadata.RIGHTS, "public",
 				"private"), "public");
-		InputStream is = new FileInputStream(file);
-		try {
+		try (InputStream is = new FileInputStream(file)) {
 			tika.parse(is, met);
 			Document document = new Document();
 			for (String key : met.names()) {
@@ -85,8 +81,6 @@
 				}
 				writer.addDocument(document);
 			}
-		} finally {
-			is.close();
 		}
 	}
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/rtf/RTFParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/rtf/RTFParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/rtf/RTFParserTest.java	(revision )
@@ -365,14 +365,10 @@
     @Test
     public void testBinControlWord() throws Exception {
         ByteCopyingHandler embHandler = new ByteCopyingHandler();
-        TikaInputStream tis = null;
-        try {
+        try (TikaInputStream tis = TikaInputStream.get(getResourceAsStream("/test-documents/testBinControlWord.rtf"))) {
             ContainerExtractor ex = new ParserContainerExtractor();
-            tis = TikaInputStream.get(getResourceAsStream("/test-documents/testBinControlWord.rtf"));
             assertEquals(true, ex.isSupported(tis));
             ex.extract(tis, ex, embHandler);
-        } finally {
-            tis.close();
         }
         assertEquals(1, embHandler.bytes.size());
 
@@ -459,15 +455,10 @@
         trueTypes.add("image/jpeg");
 
         TrackingHandler tracker = new TrackingHandler(skipTypes);
-        TikaInputStream tis = null;
-        try {
+        try (TikaInputStream tis = TikaInputStream.get(getResourceAsStream("/test-documents/testRTFEmbeddedFiles.rtf"))) {
             ContainerExtractor ex = new ParserContainerExtractor();
-            tis = TikaInputStream.get(getResourceAsStream("/test-documents/testRTFEmbeddedFiles.rtf"));
             assertEquals(true, ex.isSupported(tis));
             ex.extract(tis, ex, tracker);
-
-        } finally {
-            tis.close();
         }
 
         assertEquals(trueNames.size(), tracker.filenames.size());
@@ -487,15 +478,10 @@
         }
 
         tracker = new TrackingHandler();
-        tis = null;
-        try {
+        try (TikaInputStream tis = TikaInputStream.get(getResourceAsStream("/test-documents/testRTFEmbeddedFiles.rtf"))) {
             ContainerExtractor ex = new ParserContainerExtractor();
-            tis = TikaInputStream.get(getResourceAsStream("/test-documents/testRTFEmbeddedFiles.rtf"));
             assertEquals(true, ex.isSupported(tis));
             ex.extract(tis, ex, tracker);
-
-        } finally {
-            tis.close();
         }
         assertEquals(47, tracker.filenames.size());
         assertEquals("thumbnail_26.emf", tracker.filenames.get(45));
@@ -509,15 +495,11 @@
         RecursiveParserWrapper parser = new RecursiveParserWrapper(base,
                 new BasicContentHandlerFactory(BasicContentHandlerFactory.HANDLER_TYPE.IGNORE, -1));
         ctx.set(org.apache.tika.parser.Parser.class, parser);
-        TikaInputStream tis = null;
         ContentHandler handler = new BodyContentHandler();
         Metadata rootMetadata = new Metadata();
         rootMetadata.add(Metadata.RESOURCE_NAME_KEY, "testRTFRegularImages.rtf");
-        try {
-            tis = TikaInputStream.get(getResourceAsStream("/test-documents/testRTFRegularImages.rtf"));
+        try (TikaInputStream tis = TikaInputStream.get(getResourceAsStream("/test-documents/testRTFRegularImages.rtf"))) {
             parser.parse(tis, handler, rootMetadata, ctx);
-        } finally {
-            tis.close();
         }
         List<Metadata> metadatas = parser.getMetadata();
 
@@ -561,28 +543,19 @@
         skipTypes.add(MediaType.parse("application/x-msmetafile"));
 
         TrackingHandler tracker = new TrackingHandler(skipTypes);
-        TikaInputStream tis = null;
-        try {
+        try (TikaInputStream tis = TikaInputStream.get(getResourceAsStream("/test-documents/testRTFEmbeddedLink.rtf"))) {
             ContainerExtractor ex = new ParserContainerExtractor();
-            tis = TikaInputStream.get(getResourceAsStream("/test-documents/testRTFEmbeddedLink.rtf"));
             assertEquals(true, ex.isSupported(tis));
             ex.extract(tis, ex, tracker);
-
-        } finally {
-            tis.close();
         }
         //should gracefully skip link and not throw NPE, IOEx, etc
         assertEquals(0, tracker.filenames.size());
 
         tracker = new TrackingHandler();
-        tis = null;
-        try {
+        try (TikaInputStream tis = TikaInputStream.get(getResourceAsStream("/test-documents/testRTFEmbeddedLink.rtf"))) {
             ContainerExtractor ex = new ParserContainerExtractor();
-            tis = TikaInputStream.get(getResourceAsStream("/test-documents/testRTFEmbeddedLink.rtf"));
             assertEquals(true, ex.isSupported(tis));
             ex.extract(tis, ex, tracker);
-        } finally {
-            tis.close();
         }
         //should gracefully skip link and not throw NPE, IOEx, etc
         assertEquals(2, tracker.filenames.size());
Index: tika-example/src/main/java/org/apache/tika/example/EncryptedPrescriptionDetector.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-example/src/main/java/org/apache/tika/example/EncryptedPrescriptionDetector.java	(revision 1696828)
+++ tika-example/src/main/java/org/apache/tika/example/EncryptedPrescriptionDetector.java	(revision )
@@ -38,8 +38,7 @@
 		Key key = Pharmacy.getKey();
 		MediaType type = MediaType.OCTET_STREAM;
 
-		InputStream lookahead = new LookaheadInputStream(stream, 1024);
-		try {
+		try (InputStream lookahead = new LookaheadInputStream(stream, 1024)) {
 			Cipher cipher = Cipher.getInstance("RSA");
 
 			cipher.init(Cipher.DECRYPT_MODE, key);
@@ -53,8 +52,6 @@
 			}
 		} catch (GeneralSecurityException e) {
 			// unable to decrypt, fall through
-		} finally {
-			lookahead.close();
 		}
 		return type;
 	}
Index: tika-parsers/src/test/java/org/apache/tika/parser/chm/TestParameters.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/chm/TestParameters.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/chm/TestParameters.java	(revision )
@@ -44,11 +44,8 @@
 
     private static byte[] readResource(String name) {
         try {
-            InputStream stream = TestParameters.class.getResourceAsStream(name);
-            try {
+            try (InputStream stream = TestParameters.class.getResourceAsStream(name)) {
                 return IOUtils.toByteArray(stream);
-            } finally {
-                stream.close();
             }
         } catch (IOException e) {
             throw new RuntimeException(e);
Index: tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java	(revision )
@@ -67,8 +67,7 @@
         final StringWriter name = new StringWriter();
         ContentHandler body = new BodyContentHandler();
         Metadata metadata = new Metadata();
-        InputStream stream = HtmlParserTest.class.getResourceAsStream(path);
-        try {
+        try (InputStream stream = HtmlParserTest.class.getResourceAsStream(path)) {
             ContentHandler link = new DefaultHandler() {
                 @Override
                 public void startElement(
@@ -86,8 +85,6 @@
             new HtmlParser().parse(
                     stream, new TeeContentHandler(body, link),
                     metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertEquals(
Index: tika-parsers/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/mp4/MP4ParserTest.java	(revision )
@@ -47,12 +47,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = MP4ParserTest.class.getResourceAsStream(
-                "/test-documents/testMP4.m4a");
-        try {
+        try (InputStream stream = MP4ParserTest.class.getResourceAsStream(
+                "/test-documents/testMP4.m4a")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         // Check core properties
Index: tika-parsers/src/test/java/org/apache/tika/parser/xml/EmptyAndDuplicateElementsXMLParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/xml/EmptyAndDuplicateElementsXMLParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/xml/EmptyAndDuplicateElementsXMLParserTest.java	(revision )
@@ -38,57 +38,51 @@
 
     @Test
     public void testDefaultBehavior() throws Exception {
-        InputStream input = EmptyAndDuplicateElementsXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testXML3.xml");
-        try {
+        try (InputStream input = EmptyAndDuplicateElementsXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testXML3.xml")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new DefaultCustomXMLTestParser().parse(input, handler, metadata, new ParseContext());
-            
+
             assertEquals(4, metadata.getValues(FIRST_NAME).length);
             assertEquals(2, metadata.getValues(LAST_NAME).length);
-            
+
             assertEquals("John", metadata.getValues(FIRST_NAME)[0]);
             assertEquals("Smith", metadata.getValues(LAST_NAME)[0]);
-            
+
             assertEquals("Jane", metadata.getValues(FIRST_NAME)[1]);
             assertEquals("Doe", metadata.getValues(LAST_NAME)[1]);
-            
+
             // We didn't know Bob's last name, but now we don't know an entry existed
             assertEquals("Bob", metadata.getValues(FIRST_NAME)[2]);
-            
+
             // We don't know Kate's last name because it was a duplicate
             assertEquals("Kate", metadata.getValues(FIRST_NAME)[3]);
-        } finally {
-            input.close();
         }
     }
     
     @Test
     public void testEmptiesAndRepeats() throws Exception {
-        InputStream input = EmptyAndDuplicateElementsXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testXML3.xml");
-        try {
+        try (InputStream input = EmptyAndDuplicateElementsXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testXML3.xml")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new AllowEmptiesAndDuplicatesCustomXMLTestParser().parse(input, handler, metadata, new ParseContext());
-            
+
             assertEquals(4, metadata.getValues(FIRST_NAME).length);
             assertEquals(4, metadata.getValues(LAST_NAME).length);
-            
+
             assertEquals("John", metadata.getValues(FIRST_NAME)[0]);
             assertEquals("Smith", metadata.getValues(LAST_NAME)[0]);
-            
+
             assertEquals("Jane", metadata.getValues(FIRST_NAME)[1]);
             assertEquals("Doe", metadata.getValues(LAST_NAME)[1]);
-            
+
             assertEquals("Bob", metadata.getValues(FIRST_NAME)[2]);
             assertEquals("", metadata.getValues(LAST_NAME)[2]);
-            
+
             assertEquals("Kate", metadata.getValues(FIRST_NAME)[3]);
             assertEquals("Smith", metadata.getValues(LAST_NAME)[3]);
-        } finally {
-            input.close();
         }
     }
     
Index: tika-parsers/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java	(revision )
@@ -290,17 +290,14 @@
      */
     private void extractOutput(InputStream stream, XHTMLContentHandler xhtml) throws SAXException, IOException {
 
-        Reader reader = new InputStreamReader(stream, UTF_8);
         xhtml.startDocument();
         xhtml.startElement("div");
-        try {
+        try (Reader reader = new InputStreamReader(stream, UTF_8)) {
             char[] buffer = new char[1024];
             for (int n = reader.read(buffer); n != -1; n = reader.read(buffer)) {
                 if (n > 0)
                     xhtml.characters(buffer, 0, n);
             }
-        } finally {
-            reader.close();
         }
         xhtml.endElement("div");
         xhtml.endDocument();
Index: tika-parsers/src/test/java/org/apache/tika/parser/dwg/DWGParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/dwg/DWGParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/dwg/DWGParserTest.java	(revision )
@@ -68,24 +68,21 @@
     @Test
     public void testDWG2010CustomPropertiesParser() throws Exception {
         // Check that standard parsing works
-        InputStream input = DWGParserTest.class.getResourceAsStream(
+        InputStream testInput = DWGParserTest.class.getResourceAsStream(
                 "/test-documents/testDWG2010_custom_props.dwg");
-        testParser(input);
+        testParser(testInput);
         
         // Check that custom properties with alternate padding work
-        input = DWGParserTest.class.getResourceAsStream(
-                "/test-documents/testDWG2010_custom_props.dwg");
-        try {
+        try (InputStream input = DWGParserTest.class.getResourceAsStream(
+                "/test-documents/testDWG2010_custom_props.dwg")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new DWGParser().parse(input, handler, metadata, null);
-            
+
             assertEquals("valueforcustomprop1",
                     metadata.get("customprop1"));
             assertEquals("valueforcustomprop2",
                     metadata.get("customprop2"));
-        } finally {
-            input.close();
         }
     }
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/jdbc/SQLite3ParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/jdbc/SQLite3ParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/jdbc/SQLite3ParserTest.java	(revision )
@@ -101,17 +101,13 @@
     @Test
     public void testSpacesInBodyContentHandler() throws Exception {
         Parser p = new AutoDetectParser();
-        InputStream stream = null;
         Metadata metadata = new Metadata();
         metadata.set(Metadata.RESOURCE_NAME_KEY, TEST_FILE_NAME);
         ContentHandler handler = new BodyContentHandler(-1);
         ParseContext ctx = new ParseContext();
         ctx.set(Parser.class, p);
-        try {
-            stream = getResourceAsStream(TEST_FILE1);
+        try (InputStream stream = getResourceAsStream(TEST_FILE1)) {
             p.parse(stream, handler, metadata, ctx);
-        } finally {
-            stream.close();
         }
         String s = handler.toString();
         assertContains("0\t2.3\t2.4\tlorem", s);
Index: tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java	(revision )
@@ -78,10 +78,8 @@
             Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         // Automatically detect the character encoding
-        AutoDetectReader reader = new AutoDetectReader(
-                new CloseShieldInputStream(stream), metadata,
-                context.get(ServiceLoader.class, LOADER));
-        try {
+        try (AutoDetectReader reader = new AutoDetectReader(new CloseShieldInputStream(stream),
+                metadata,context.get(ServiceLoader.class, LOADER))) {
             Charset charset = reader.getCharset();
             String previous = metadata.get(Metadata.CONTENT_TYPE);
             MediaType contentType = null;
@@ -122,8 +120,6 @@
                     new HtmlHandler(mapper, handler, metadata)));
 
             parser.parse(reader.asInputSource());
-        } finally {
-            reader.close();
         }
     }
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/txt/CharsetDetectorTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/txt/CharsetDetectorTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/txt/CharsetDetectorTest.java	(revision )
@@ -29,9 +29,7 @@
 
     @Test
     public void testTagDropper() throws IOException {
-        InputStream in = CharsetDetectorTest.class.getResourceAsStream("/test-documents/resume.html");
-
-        try {
+        try (InputStream in = CharsetDetectorTest.class.getResourceAsStream("/test-documents/resume.html")) {
             CharsetDetector detector = new CharsetDetector();
             detector.enableInputFilter(true);
             detector.setText(in);
@@ -44,8 +42,6 @@
             }
             assertTrue(mm != null);
             assertEquals("UTF-8", mm.getName());
-        } finally {
-            in.close();
         }
     }
   
@@ -56,17 +52,13 @@
 
     @Test
     public void testEmptyOrNullDeclaredCharset() throws IOException {
-        InputStream in = CharsetDetectorTest.class.getResourceAsStream("/test-documents/resume.html");
-
-        try {
+        try (InputStream in = CharsetDetectorTest.class.getResourceAsStream("/test-documents/resume.html")) {
             CharsetDetector detector = new CharsetDetector();
             Reader reader = detector.getReader(in, null);
             assertTrue(reader.ready());
 
             reader = detector.getReader(in, "");
             assertTrue(reader.ready());
-        } finally {
-            in.close();
         }
     }
 }
Index: tika-example/src/main/java/org/apache/tika/example/TIAParsingExample.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-example/src/main/java/org/apache/tika/example/TIAParsingExample.java	(revision 1696828)
+++ tika-example/src/main/java/org/apache/tika/example/TIAParsingExample.java	(revision )
@@ -62,16 +62,13 @@
 
 	public static void parseToReaderExample() throws Exception {
 		File document = new File("example.doc");
-		Reader reader = new Tika().parse(document);
-		try {
+		try (Reader reader = new Tika().parse(document)) {
 			char[] buffer = new char[1000];
 			int n = reader.read(buffer);
 			while (n != -1) {
 				System.out.append(CharBuffer.wrap(buffer, 0, n));
 				n = reader.read(buffer);
 			}
-		} finally {
-			reader.close();
 		}
 	}
 
@@ -80,11 +77,8 @@
 		ContentHandler handler = new DefaultHandler();
 		Metadata metadata = new Metadata();
 		ParseContext context = new ParseContext();
-		InputStream stream = new FileInputStream(new File(filename));
-		try {
+		try (InputStream stream = new FileInputStream(new File(filename))) {
 			parser.parse(stream, handler, metadata, context);
-		} finally {
-			stream.close();
 		}
 	}
 
@@ -93,11 +87,8 @@
 		ContentHandler handler = new DefaultHandler();
 		Metadata metadata = new Metadata();
 		ParseContext context = new ParseContext();
-		InputStream stream = new GZIPInputStream(new URL(address).openStream());
-		try {
+		try (InputStream stream = new GZIPInputStream(new URL(address).openStream())) {
 			parser.parse(stream, handler, metadata, context);
-		} finally {
-			stream.close();
 		}
 	}
 
@@ -106,22 +97,16 @@
 		ContentHandler handler = new DefaultHandler();
 		Metadata metadata = new Metadata();
 		ParseContext context = new ParseContext();
-		InputStream stream = TikaInputStream.get(new File(filename));
-		try {
+		try (InputStream stream = TikaInputStream.get(new File(filename))) {
 			parser.parse(stream, handler, metadata, context);
-		} finally {
-			stream.close();
 		}
 	}
 
 	public static File tikaInputStreamGetFile(String filename) throws Exception {
-		InputStream stream = TikaInputStream.get(new File(filename));
-		try {
+		try (InputStream stream = TikaInputStream.get(new File(filename))) {
 			TikaInputStream tikaInputStream = TikaInputStream.get(stream);
 			File file = tikaInputStream.getFile();
 			return file;
-		} finally {
-			stream.close();
 		}
 	}
 
@@ -166,13 +151,10 @@
 		ParseContext context = new ParseContext();
 		Parser parser = new AutoDetectParser();
 		LinkContentHandler linkCollector = new LinkContentHandler();
-		OutputStream output = new FileOutputStream(new File(filename));
-		try {
+		try (OutputStream output = new FileOutputStream(new File(filename))) {
 			ContentHandler handler = new TeeContentHandler(
 					new BodyContentHandler(output), linkCollector);
 			parser.parse(stream, handler, metadata, context);
-		} finally {
-			output.close();
 		}
 	}
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/microsoft/PowerPointParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/microsoft/PowerPointParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/microsoft/PowerPointParserTest.java	(revision )
@@ -35,9 +35,8 @@
 
     @Test
     public void testPowerPointParser() throws Exception {
-        InputStream input = PowerPointParserTest.class.getResourceAsStream(
-                "/test-documents/testPPT.ppt");
-        try {
+        try (InputStream input = PowerPointParserTest.class.getResourceAsStream(
+                "/test-documents/testPPT.ppt")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new OfficeParser().parse(input, handler, metadata, new ParseContext());
@@ -51,8 +50,6 @@
             String content = handler.toString();
             assertContains("Sample Powerpoint Slide", content);
             assertContains("Powerpoint X for Mac", content);
-        } finally {
-            input.close();
         }
     }
 
@@ -61,12 +58,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = PowerPointParserTest.class.getResourceAsStream(
-                "/test-documents/testPPT_various.ppt");
-        try {
+        try (InputStream stream = PowerPointParserTest.class.getResourceAsStream(
+                "/test-documents/testPPT_various.ppt")) {
             new OfficeParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -134,12 +128,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = PowerPointParserTest.class.getResourceAsStream(
-                "/test-documents/testPPT_masterFooter.ppt");
-        try {
+        try (InputStream stream = PowerPointParserTest.class.getResourceAsStream(
+                "/test-documents/testPPT_masterFooter.ppt")) {
             new OfficeParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -161,12 +152,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = PowerPointParserTest.class.getResourceAsStream(
-                "/test-documents/testPPT_masterText.ppt");
-        try {
+        try (InputStream stream = PowerPointParserTest.class.getResourceAsStream(
+                "/test-documents/testPPT_masterText.ppt")) {
             new OfficeParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -184,12 +172,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = PowerPointParserTest.class.getResourceAsStream(
-                "/test-documents/testPPT_masterText2.ppt");
-        try {
+        try (InputStream stream = PowerPointParserTest.class.getResourceAsStream(
+                "/test-documents/testPPT_masterText2.ppt")) {
             new OfficeParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -206,17 +191,14 @@
      */
     @Test
     public void testCustomProperties() throws Exception {
-        InputStream input = PowerPointParserTest.class.getResourceAsStream(
-                "/test-documents/testPPT_custom_props.ppt");
         Metadata metadata = new Metadata();
 
-        try {
+        try (InputStream input = PowerPointParserTest.class.getResourceAsStream(
+                "/test-documents/testPPT_custom_props.ppt")) {
             ContentHandler handler = new BodyContentHandler(-1);
             ParseContext context = new ParseContext();
             context.set(Locale.class, Locale.US);
             new OfficeParser().parse(input, handler, metadata, context);
-        } finally {
-            input.close();
         }
 
         assertEquals("application/vnd.ms-powerpoint", metadata.get(Metadata.CONTENT_TYPE));
Index: tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java	(revision 1696828)
+++ tika-bundle/src/test/java/org/apache/tika/bundle/BundleIT.java	(revision )
@@ -247,12 +247,8 @@
         ParseContext context = new ParseContext();
         context.set(Parser.class, parser);
 
-        InputStream stream
-                = new FileInputStream("src/test/resources/test-documents.zip");
-        try {
+        try (InputStream stream = new FileInputStream("src/test/resources/test-documents.zip")) {
             parser.parse(stream, handler, new Metadata(), context);
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
Index: tika-parsers/src/test/java/org/apache/tika/parser/xml/FictionBookParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/xml/FictionBookParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/xml/FictionBookParserTest.java	(revision )
@@ -35,23 +35,19 @@
   
     @Test
     public void testFB2() throws Exception {
-        InputStream input = FictionBookParserTest.class.getResourceAsStream("/test-documents/test.fb2");
-        try {
+        try (InputStream input = FictionBookParserTest.class.getResourceAsStream("/test-documents/test.fb2")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new FictionBookParser().parse(input, handler, metadata, new ParseContext());
             String content = handler.toString();
 
             assertContains("1812", content);
-        } finally {
-            input.close();
         }
     }
 
     @Test
     public void testEmbedded() throws Exception {
-        InputStream input = FictionBookParserTest.class.getResourceAsStream("/test-documents/test.fb2");
-        try {
+        try (InputStream input = FictionBookParserTest.class.getResourceAsStream("/test-documents/test.fb2")) {
             ContainerExtractor extractor = new ParserContainerExtractor();
             TikaInputStream stream = TikaInputStream.get(input);
 
@@ -62,8 +58,6 @@
             extractor.extract(stream, null, handler);
 
             assertEquals(2, handler.filenames.size());
-        } finally {
-            input.close();
         }
     }
 }
Index: tika-core/src/main/java/org/apache/tika/fork/ForkClient.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/main/java/org/apache/tika/fork/ForkClient.java	(revision 1696828)
+++ tika-core/src/main/java/org/apache/tika/fork/ForkClient.java	(revision )
@@ -259,10 +259,9 @@
      * @throws IOException if the bootstrap archive could not be created
      */
     private static void fillBootstrapJar(File file) throws IOException {
-        JarOutputStream jar = new JarOutputStream(new FileOutputStream(file));
-        try {
+        try (JarOutputStream jar = new JarOutputStream(new FileOutputStream(file))) {
             String manifest =
-                "Main-Class: " + ForkServer.class.getName() + "\n";
+                    "Main-Class: " + ForkServer.class.getName() + "\n";
             jar.putNextEntry(new ZipEntry("META-INF/MANIFEST.MF"));
             jar.write(manifest.getBytes(UTF_8));
 
@@ -277,16 +276,11 @@
             ClassLoader loader = ForkServer.class.getClassLoader();
             for (Class<?> klass : bootstrap) {
                 String path = klass.getName().replace('.', '/') + ".class";
-                InputStream input = loader.getResourceAsStream(path);
-                try {
+                try (InputStream input = loader.getResourceAsStream(path)) {
                     jar.putNextEntry(new JarEntry(path));
                     IOUtils.copy(input, jar);
-                } finally {
-                    input.close();
                 }
             }
-        } finally {
-            jar.close();
         }
     }
 
Index: tika-example/src/main/java/org/apache/tika/example/ContentHandlerExample.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-example/src/main/java/org/apache/tika/example/ContentHandlerExample.java	(revision 1696828)
+++ tika-example/src/main/java/org/apache/tika/example/ContentHandlerExample.java	(revision )
@@ -45,15 +45,12 @@
      */
     public String parseToPlainText() throws IOException, SAXException, TikaException {
         BodyContentHandler handler = new BodyContentHandler();
-        
+
-        InputStream stream = ContentHandlerExample.class.getResourceAsStream("test.doc");
         AutoDetectParser parser = new AutoDetectParser();
         Metadata metadata = new Metadata();
-        try {
+        try (InputStream stream = ContentHandlerExample.class.getResourceAsStream("test.doc")) {
             parser.parse(stream, handler, metadata);
             return handler.toString();
-        } finally {
-            stream.close();
         }
     }
 
@@ -62,15 +59,12 @@
      */
     public String parseToHTML() throws IOException, SAXException, TikaException {
         ContentHandler handler = new ToXMLContentHandler();
-        
+
-        InputStream stream = ContentHandlerExample.class.getResourceAsStream("test.doc");
         AutoDetectParser parser = new AutoDetectParser();
         Metadata metadata = new Metadata();
-        try {
+        try (InputStream stream = ContentHandlerExample.class.getResourceAsStream("test.doc")) {
             parser.parse(stream, handler, metadata);
             return handler.toString();
-        } finally {
-            stream.close();
         }
     }
     
@@ -81,15 +75,12 @@
     public String parseBodyToHTML() throws IOException, SAXException, TikaException {
         ContentHandler handler = new BodyContentHandler(
                 new ToXMLContentHandler());
-        
+
-        InputStream stream = ContentHandlerExample.class.getResourceAsStream("test.doc");
         AutoDetectParser parser = new AutoDetectParser();
         Metadata metadata = new Metadata();
-        try {
+        try (InputStream stream = ContentHandlerExample.class.getResourceAsStream("test.doc")) {
             parser.parse(stream, handler, metadata);
             return handler.toString();
-        } finally {
-            stream.close();
         }
     }
     
@@ -104,15 +95,12 @@
                 "/xhtml:html/xhtml:body/xhtml:div/descendant::node()");        
         ContentHandler handler = new MatchingContentHandler(
                 new ToXMLContentHandler(), divContentMatcher);
-        
+
-        InputStream stream = ContentHandlerExample.class.getResourceAsStream("test2.doc");
         AutoDetectParser parser = new AutoDetectParser();
         Metadata metadata = new Metadata();
-        try {
+        try (InputStream stream = ContentHandlerExample.class.getResourceAsStream("test2.doc")) {
             parser.parse(stream, handler, metadata);
             return handler.toString();
-        } finally {
-            stream.close();
         }
     }
     
@@ -137,15 +125,12 @@
                 }
             }
         };
-        
+
-        InputStream stream = ContentHandlerExample.class.getResourceAsStream("test2.doc");
         AutoDetectParser parser = new AutoDetectParser();
         Metadata metadata = new Metadata();
-        try {
+        try (InputStream stream = ContentHandlerExample.class.getResourceAsStream("test2.doc")) {
             parser.parse(stream, handler, metadata);
             return chunks;
-        } finally {
-            stream.close();
         }
     }
 }
Index: tika-parsers/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/mp3/Mp3ParserTest.java	(revision )
@@ -56,12 +56,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = Mp3ParserTest.class.getResourceAsStream(
-                "/test-documents/testMP3id3v1.mp3");
-        try {
+        try (InputStream stream = Mp3ParserTest.class.getResourceAsStream(
+                "/test-documents/testMP3id3v1.mp3")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertEquals("audio/mpeg", metadata.get(Metadata.CONTENT_TYPE));
@@ -93,12 +90,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = Mp3ParserTest.class.getResourceAsStream(
-                "/test-documents/testMP3id3v2.mp3");
-        try {
+        try (InputStream stream = Mp3ParserTest.class.getResourceAsStream(
+                "/test-documents/testMP3id3v2.mp3")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         // Check core properties
@@ -151,12 +145,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = Mp3ParserTest.class.getResourceAsStream(
-                "/test-documents/testMP3id3v1_v2.mp3");
-        try {
+        try (InputStream stream = Mp3ParserTest.class.getResourceAsStream(
+                "/test-documents/testMP3id3v1_v2.mp3")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertEquals("audio/mpeg", metadata.get(Metadata.CONTENT_TYPE));
@@ -188,12 +179,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = Mp3ParserTest.class.getResourceAsStream(
-                "/test-documents/testMP3id3v24.mp3");
-        try {
+        try (InputStream stream = Mp3ParserTest.class.getResourceAsStream(
+                "/test-documents/testMP3id3v24.mp3")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertEquals("audio/mpeg", metadata.get(Metadata.CONTENT_TYPE));
@@ -238,13 +226,10 @@
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
 
-       InputStream stream = Mp3ParserTest.class.getResourceAsStream(
-               "/test-documents/testMP3i18n.mp3");
-       try {
+        try (InputStream stream = Mp3ParserTest.class.getResourceAsStream(
+                "/test-documents/testMP3i18n.mp3")) {
-           parser.parse(stream, handler, metadata, new ParseContext());
+            parser.parse(stream, handler, metadata, new ParseContext());
-       } finally {
-           stream.close();
-       }
+        }
 
        assertEquals("audio/mpeg", metadata.get(Metadata.CONTENT_TYPE));
        assertEquals("Une chason en Fran\u00e7ais", metadata.get(TikaCoreProperties.TITLE));
@@ -278,13 +263,10 @@
         // Note - our test file has a lyrics tag, but lacks any
         //  lyrics in the tags, so we can't test that bit
         // TODO Find a better sample file
-        
+
-        InputStream stream = Mp3ParserTest.class.getResourceAsStream(
-                "/test-documents/testMP3lyrics.mp3");
-        try {
+        try (InputStream stream = Mp3ParserTest.class.getResourceAsStream(
+                "/test-documents/testMP3lyrics.mp3")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertEquals("audio/mpeg", metadata.get(Metadata.CONTENT_TYPE));
@@ -335,12 +317,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = Mp3ParserTest.class.getResourceAsStream(
-                "/test-documents/testMP3noid3.mp3");
-        try {
+        try (InputStream stream = Mp3ParserTest.class.getResourceAsStream(
+                "/test-documents/testMP3noid3.mp3")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertEquals("2455.510986328125", metadata.get(XMPDM.DURATION));
@@ -359,19 +338,15 @@
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
 
-       InputStream stream = Mp3ParserTest.class.getResourceAsStream(
-               "/test-documents/test2.mp3");
+        try (InputStream stream = Mp3ParserTest.class.getResourceAsStream(
+                "/test-documents/test2.mp3")) {
-       if(stream == null) {
+            if (stream == null) {
-          // You haven't downloaded the file
-          // Skip the test
-          return;
-       }
+                // You haven't downloaded the file
+                // Skip the test
+                return;
+            }
-       
-       try {
-           parser.parse(stream, handler, metadata, new ParseContext());
+            parser.parse(stream, handler, metadata, new ParseContext());
-       } finally {
-           stream.close();
-       }
+        }
 
        assertEquals("audio/mpeg", metadata.get(Metadata.CONTENT_TYPE));
        assertEquals("Plus loin vers l'ouest", metadata.get(TikaCoreProperties.TITLE));
@@ -399,15 +374,10 @@
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
 
-       InputStream stream = Mp3ParserTest.class.getResourceAsStream(
-               "/test-documents/testMP3truncated.mp3");
-       
-       
-       try {
+        try (InputStream stream = Mp3ParserTest.class.getResourceAsStream(
+                "/test-documents/testMP3truncated.mp3")) {
-           parser.parse(stream, handler, metadata, new ParseContext());
+            parser.parse(stream, handler, metadata, new ParseContext());
-       } finally {
-           stream.close();
-       }
+        }
 
        // Check we could get the headers from the start
        assertEquals("audio/mpeg", metadata.get(Metadata.CONTENT_TYPE));
@@ -434,14 +404,10 @@
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
 
-       InputStream stream = Mp3ParserTest.class.getResourceAsStream(
-               "/test-documents/testNakedUTF16BOM.mp3");
-       
-       try {
+        try (InputStream stream = Mp3ParserTest.class.getResourceAsStream(
+                "/test-documents/testNakedUTF16BOM.mp3")) {
-           parser.parse(stream, handler, metadata, new ParseContext());
+            parser.parse(stream, handler, metadata, new ParseContext());
-       } finally {
-           stream.close();
-       }
+        }
        assertEquals("audio/mpeg", metadata.get(Metadata.CONTENT_TYPE));
        assertEquals("", metadata.get(XMPDM.GENRE));
     }
Index: tika-parsers/src/test/java/org/apache/tika/parser/ocr/TesseractOCRParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/ocr/TesseractOCRParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/ocr/TesseractOCRParserTest.java	(revision )
@@ -138,12 +138,8 @@
         parseContext.set(Parser.class, parser);
         parseContext.set(PDFParserConfig.class, pdfConfig);
 
-        InputStream stream = TesseractOCRParserTest.class.getResourceAsStream(resource);
-
-        try {
+        try (InputStream stream = TesseractOCRParserTest.class.getResourceAsStream(resource)) {
             parser.parse(stream, new DefaultHandler(), new Metadata(), parseContext);
-        } finally {
-            stream.close();
         }
         List<Metadata> metadataList = ((RecursiveParserWrapper) parser).getMetadata();
         assertEquals(numMetadatas, metadataList.size());
Index: tika-parsers/src/test/java/org/apache/tika/parser/pkg/ArParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/pkg/ArParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/pkg/ArParserTest.java	(revision )
@@ -38,27 +38,21 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = ArParserTest.class.getResourceAsStream(
-                "/test-documents/testARofText.ar");
-        try {
+        try (InputStream stream = ArParserTest.class.getResourceAsStream(
+                "/test-documents/testARofText.ar")) {
             parser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals("application/x-archive",
-                     metadata.get(Metadata.CONTENT_TYPE));
+                metadata.get(Metadata.CONTENT_TYPE));
         String content = handler.toString();
         assertContains("testTXT.txt", content);
         assertContains("Test d'indexation de Txt", content);
         assertContains("http://www.apache.org", content);
 
-        stream = ArParserTest.class.getResourceAsStream(
-                "/test-documents/testARofSND.ar");
-        try {
+        try (InputStream stream = ArParserTest.class.getResourceAsStream(
+                "/test-documents/testARofSND.ar")) {
             parser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals("application/x-archive",
@@ -77,12 +71,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = ArParserTest.class.getResourceAsStream(
-                "/test-documents/testARofText.ar");
-        try {
+        try (InputStream stream = ArParserTest.class.getResourceAsStream(
+                "/test-documents/testARofText.ar")) {
             parser.parse(stream, handler, metadata, trackingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals(1, tracker.filenames.size());
@@ -102,12 +93,9 @@
         }
 
         tracker.reset();
-        stream = ArParserTest.class.getResourceAsStream(
-                "/test-documents/testARofSND.ar");
-        try {
+        try (InputStream stream = ArParserTest.class.getResourceAsStream(
+                "/test-documents/testARofSND.ar")) {
             parser.parse(stream, handler, metadata, trackingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals(1, tracker.filenames.size());
Index: tika-parsers/src/main/java/org/apache/tika/parser/crypto/Pkcs7Parser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/crypto/Pkcs7Parser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/crypto/Pkcs7Parser.java	(revision )
@@ -69,13 +69,10 @@
                 if (content == null) {
                     throw new TikaException("cannot parse detached pkcs7 signature (no signed data to parse)");
                 }
-                InputStream input = content.getContentStream();
-                try {
+                try (InputStream input = content.getContentStream()) {
                     Parser delegate =
                             context.get(Parser.class, EmptyParser.INSTANCE);
                     delegate.parse(input, handler, metadata, context);
-                } finally {
-                    input.close();
                 }
             } finally {
                 parser.close();
Index: tika-parsers/src/test/java/org/apache/tika/parser/pkg/Bzip2ParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/pkg/Bzip2ParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/pkg/Bzip2ParserTest.java	(revision )
@@ -39,12 +39,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = Bzip2ParserTest.class.getResourceAsStream(
-                "/test-documents/test-documents.tbz2");
-        try {
+        try (InputStream stream = Bzip2ParserTest.class.getResourceAsStream(
+                "/test-documents/test-documents.tbz2")) {
             parser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals("application/x-bzip2", metadata.get(Metadata.CONTENT_TYPE));
@@ -80,13 +77,10 @@
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
 
-       InputStream stream = ZipParserTest.class.getResourceAsStream(
-               "/test-documents/test-documents.tbz2");
-       try {
+        try (InputStream stream = ZipParserTest.class.getResourceAsStream(
+                "/test-documents/test-documents.tbz2")) {
-           parser.parse(stream, handler, metadata, trackingContext);
+            parser.parse(stream, handler, metadata, trackingContext);
-       } finally {
-           stream.close();
-       }
+        }
        
        // Should find a single entry, for the (compressed) tar file
        assertEquals(1, tracker.filenames.size());
Index: tika-parsers/src/test/java/org/apache/tika/parser/font/FontParsersTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/font/FontParsersTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/font/FontParsersTest.java	(revision )
@@ -46,14 +46,10 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
         ParseContext context = new ParseContext();
-        TikaInputStream stream = TikaInputStream.get(
-                FontParsersTest.class.getResource(
-                        "/test-documents/testAFM.afm"));
 
-        try {
+        try (TikaInputStream stream = TikaInputStream.get(
+                FontParsersTest.class.getResource("/test-documents/testAFM.afm"))) {
             parser.parse(stream, handler, metadata, context);
-        } finally {
-            stream.close();
         }
 
         assertEquals("application/x-font-adobe-metric", metadata.get(Metadata.CONTENT_TYPE));
@@ -84,14 +80,10 @@
         //Open Sans font is ASL 2.0 according to 
         //http://www.google.com/fonts/specimen/Open+Sans
         //...despite the copyright in the file's metadata.
-        TikaInputStream stream = TikaInputStream.get(
-                FontParsersTest.class.getResource(
-                        "/test-documents/testTrueType3.ttf"));
-        
+
-        try {
+        try (TikaInputStream stream = TikaInputStream.get(
+                FontParsersTest.class.getResource("/test-documents/testTrueType3.ttf"))) {
             parser.parse(stream, handler, metadata, context);
-        } finally {
-            stream.close();
         }
 
         assertEquals("application/x-font-ttf", metadata.get(Metadata.CONTENT_TYPE));
Index: tika-core/src/main/java/org/apache/tika/config/ServiceLoader.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/main/java/org/apache/tika/config/ServiceLoader.java	(revision 1696828)
+++ tika-core/src/main/java/org/apache/tika/config/ServiceLoader.java	(revision )
@@ -343,10 +343,9 @@
 
     private void collectServiceClassNames(URL resource, Collection<String> names)
             throws IOException {
-        InputStream stream = resource.openStream();
-        try {
+        try (InputStream stream = resource.openStream()) {
             BufferedReader reader =
-                new BufferedReader(new InputStreamReader(stream, UTF_8));
+                    new BufferedReader(new InputStreamReader(stream, UTF_8));
             String line = reader.readLine();
             while (line != null) {
                 line = COMMENT.matcher(line).replaceFirst("");
@@ -356,8 +355,6 @@
                 }
                 line = reader.readLine();
             }
-        } finally {
-            stream.close();
         }
     }
 
Index: tika-parsers/src/main/java/org/apache/tika/parser/rtf/RTFObjDataParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/rtf/RTFObjDataParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/rtf/RTFObjDataParser.java	(revision )
@@ -126,12 +126,9 @@
                                        AtomicInteger unknownFilenameCount)
             throws IOException {
 
-        NPOIFSFileSystem fs = null;
         byte[] ret = null;
-        try {
+        try (NPOIFSFileSystem fs = new NPOIFSFileSystem(is)) {
 
-            fs = new NPOIFSFileSystem(is);
-
             DirectoryNode root = fs.getRoot();
 
             if (root == null) {
@@ -166,16 +163,10 @@
                         contentsEntry = (DocumentEntry) root.getEntry("Contents");
                     }
 
-                    DocumentInputStream inp = null;
-                    try {
-                        inp = new DocumentInputStream(contentsEntry);
+                    try (DocumentInputStream inp = new DocumentInputStream(contentsEntry)) {
                         ret = new byte[contentsEntry.getSize()];
                         inp.readFully(ret);
-                    } finally {
-                        if (inp != null) {
-                            inp.close();
-                        }
+                    }
-                    }
                 } else {
 
                     ByteArrayOutputStream out = new ByteArrayOutputStream();
@@ -185,10 +176,6 @@
                     metadata.set(Metadata.RESOURCE_NAME_KEY, "file_" + unknownFilenameCount.getAndIncrement() + "." + type.getExtension());
                     metadata.set(Metadata.CONTENT_TYPE, type.getType().toString());
                 }
-            }
-        } finally {
-            if (fs != null) {
-                fs.close();
             }
         }
         return ret;
Index: tika-parsers/src/test/java/org/apache/tika/parser/microsoft/TNEFParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/microsoft/TNEFParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/microsoft/TNEFParserTest.java	(revision )
@@ -40,14 +40,11 @@
 
     @Test
     public void testBasics() throws Exception {
-        TikaInputStream stream = getTestFile(file);
         Detector detector = new DefaultDetector();
-        try {
+        try (TikaInputStream stream = getTestFile(file)) {
             assertEquals(
                     MediaType.application("vnd.ms-tnef"),
                     detector.detect(stream, new Metadata()));
-        } finally {
-            stream.close();
         }
     }
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/pdf/PDFParserTest.java	(revision )
@@ -136,13 +136,9 @@
         Parser parser = new AutoDetectParser(); // Should auto-detect!
         Metadata metadata = new Metadata();
 
-        InputStream stream = PDFParserTest.class.getResourceAsStream(
-                "/test-documents/testPDF.pdf");
-
-        try {
+        try (InputStream stream = PDFParserTest.class.getResourceAsStream(
+                "/test-documents/testPDF.pdf")) {
             parser.parse(stream, null, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertEquals("application/pdf", metadata.get(Metadata.CONTENT_TYPE));
@@ -188,12 +184,9 @@
         Metadata metadata = new Metadata();
         ParseContext context = new ParseContext();
 
-        InputStream stream = PDFParserTest.class.getResourceAsStream(
-                "/test-documents/testPDF_protected.pdf");
-        try {
+        try (InputStream stream = PDFParserTest.class.getResourceAsStream(
+                "/test-documents/testPDF_protected.pdf")) {
             parser.parse(stream, handler, metadata, context);
-        } finally {
-            stream.close();
         }
 
         assertEquals("true", metadata.get("pdf:encrypted"));
@@ -221,12 +214,9 @@
             }
         });
 
-        stream = PDFParserTest.class.getResourceAsStream(
-                "/test-documents/testPDF_protected.pdf");
-        try {
+        try (InputStream stream = PDFParserTest.class.getResourceAsStream(
+                "/test-documents/testPDF_protected.pdf")) {
             parser.parse(stream, handler, metadata, context);
-        } finally {
-            stream.close();
         }
         assertEquals("true", metadata.get("pdf:encrypted"));
 
@@ -250,15 +240,12 @@
             }
         });
 
-        stream = PDFParserTest.class.getResourceAsStream(
-                "/test-documents/testPDF_protected.pdf");
         boolean ex = false;
-        try {
+        try (InputStream stream = PDFParserTest.class.getResourceAsStream(
+                "/test-documents/testPDF_protected.pdf")) {
             parser.parse(stream, handler, metadata, context);
         } catch (EncryptedDocumentException e) {
             ex = true;
-        } finally {
-            stream.close();
         }
         content = handler.toString();
 
@@ -282,15 +269,13 @@
         config.setUseNonSequentialParser(true);
         context.set(PDFParserConfig.class, config);
 
-        stream = PDFParserTest.class.getResourceAsStream(
-                "/test-documents/testPDF_protected.pdf");
+        ;
         ex = false;
-        try {
+        try (InputStream stream = PDFParserTest.class.getResourceAsStream(
+                "/test-documents/testPDF_protected.pdf")) {
             parser.parse(stream, handler, metadata, context);
         } catch (EncryptedDocumentException e) {
             ex = true;
-        } finally {
-            stream.close();
         }
         content = handler.toString();
         assertTrue("encryption exception", ex);
@@ -774,7 +759,6 @@
 
         RecursiveParserWrapper p = new RecursiveParserWrapper(new AutoDetectParser(),
                 new BasicContentHandlerFactory(BasicContentHandlerFactory.HANDLER_TYPE.IGNORE, -1));
-        TikaInputStream tis = null;
         ParseContext context = new ParseContext();
         PDFParserConfig config = new PDFParserConfig();
         config.setExtractInlineImages(true);
@@ -782,14 +766,9 @@
         context.set(org.apache.tika.parser.pdf.PDFParserConfig.class, config);
         context.set(org.apache.tika.parser.Parser.class, p);
 
-        try {
-            tis = TikaInputStream.get(
-                    getResourceAsStream("/test-documents/testPDF_childAttachments.pdf"));
+        try (TikaInputStream tis = TikaInputStream.get(
+                getResourceAsStream("/test-documents/testPDF_childAttachments.pdf"))) {
             p.parse(tis, new BodyContentHandler(-1), new Metadata(), context);
-        } finally {
-            if (tis != null) {
-                tis.close();
-            }
         }
 
         List<Metadata> metadatas = p.getMetadata();
Index: tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/mail/RFC822ParserTest.java	(revision )
@@ -362,15 +362,10 @@
     @Test
     public void testGetAttachmentsAsEmbeddedResources() throws Exception {
         TrackingHandler tracker = new TrackingHandler();
-        TikaInputStream tis = null;
         ContainerExtractor ex = new ParserContainerExtractor();
-        try {
-            tis = TikaInputStream.get(getStream("test-documents/testRFC822-multipart"));
+        try (TikaInputStream tis = TikaInputStream.get(getStream("test-documents/testRFC822-multipart"))) {
             assertEquals(true, ex.isSupported(tis));
             ex.extract(tis, ex, tracker);
-        } finally {
-            if (tis != null)
-                tis.close();
         }
 
         // Check we found all 3 parts
Index: tika-parsers/src/test/java/org/apache/tika/parser/grib/GribParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/grib/GribParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/grib/GribParserTest.java	(revision )
@@ -41,11 +41,8 @@
         Parser parser = new GribParser();
         Metadata metadata = new Metadata();
         ContentHandler handler = new BodyContentHandler();
-        InputStream stream = GribParser.class.getResourceAsStream("/test-documents/gdas1.forecmwf.2014062612.grib2");
-        try {
+        try (InputStream stream = GribParser.class.getResourceAsStream("/test-documents/gdas1.forecmwf.2014062612.grib2")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
         assertNotNull(metadata);
         String content = handler.toString();
Index: tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/odf/ODFParserTest.java	(revision )
@@ -50,95 +50,89 @@
     @Test
     public void testOO3() throws Exception {
        for (Parser parser : getParsers()) {
-          InputStream input = ODFParserTest.class.getResourceAsStream(
-                "/test-documents/testODFwithOOo3.odt");
-          try {
+           try (InputStream input = ODFParserTest.class.getResourceAsStream(
+                   "/test-documents/testODFwithOOo3.odt")) {
-             Metadata metadata = new Metadata();
-             ContentHandler handler = new BodyContentHandler();
-             parser.parse(input, handler, metadata, new ParseContext());
+               Metadata metadata = new Metadata();
+               ContentHandler handler = new BodyContentHandler();
+               parser.parse(input, handler, metadata, new ParseContext());
 
-             assertEquals(
-                   "application/vnd.oasis.opendocument.text",
-                   metadata.get(Metadata.CONTENT_TYPE));
+               assertEquals(
+                       "application/vnd.oasis.opendocument.text",
+                       metadata.get(Metadata.CONTENT_TYPE));
 
-             String content = handler.toString();
-             assertContains("Tika is part of the Lucene project.", content);
-             assertContains("Solr", content);
-             assertContains("one embedded", content);
-             assertContains("Rectangle Title", content);
-             assertContains("a blue background and dark border", content);        
+               String content = handler.toString();
+               assertContains("Tika is part of the Lucene project.", content);
+               assertContains("Solr", content);
+               assertContains("one embedded", content);
+               assertContains("Rectangle Title", content);
+               assertContains("a blue background and dark border", content);
-          } finally {
-             input.close();
-          }
+           }
        }
     }
 
     @Test
     public void testOO2() throws Exception {
        for (Parser parser : getParsers()) {
-          InputStream input = ODFParserTest.class.getResourceAsStream(
-                 "/test-documents/testOpenOffice2.odt");
-          try {
+           try (InputStream input = ODFParserTest.class.getResourceAsStream(
+                   "/test-documents/testOpenOffice2.odt")) {
-             Metadata metadata = new Metadata();
-             ContentHandler handler = new BodyContentHandler();
-             parser.parse(input, handler, metadata, new ParseContext());
+               Metadata metadata = new Metadata();
+               ContentHandler handler = new BodyContentHandler();
+               parser.parse(input, handler, metadata, new ParseContext());
 
-             assertEquals(
-                   "application/vnd.oasis.opendocument.text",
-                   metadata.get(Metadata.CONTENT_TYPE));
-             assertEquals("en-US", metadata.get(Metadata.LANGUAGE));
-             assertEquals("PT1M7S", metadata.get(Metadata.EDIT_TIME));
-             assertEquals(
-                   "NeoOffice/2.2$Unix OpenOffice.org_project/680m18$Build-9161",
-                   metadata.get("generator"));
-             
-             // Check date metadata, both old-style and new-style
-             assertEquals("2007-09-14T11:07:10", metadata.get(TikaCoreProperties.MODIFIED));
-             assertEquals("2007-09-14T11:07:10", metadata.get(Metadata.MODIFIED));
-             assertEquals("2007-09-14T11:07:10", metadata.get(Metadata.DATE));
-             assertEquals("2007-09-14T11:06:08", metadata.get(TikaCoreProperties.CREATED));
-             assertEquals("2007-09-14T11:06:08", metadata.get(Metadata.CREATION_DATE));
-             
-             // Check the document statistics
-             assertEquals("1", metadata.get(Office.PAGE_COUNT));
-             assertEquals("1", metadata.get(Office.PARAGRAPH_COUNT));
-             assertEquals("14", metadata.get(Office.WORD_COUNT));
-             assertEquals("78", metadata.get(Office.CHARACTER_COUNT));
-             assertEquals("0", metadata.get(Office.TABLE_COUNT));
-             assertEquals("0", metadata.get(Office.OBJECT_COUNT));
-             assertEquals("0", metadata.get(Office.IMAGE_COUNT));
-             
-             // Check the Tika-1.0 style document statistics
-             assertEquals("1", metadata.get(Metadata.PAGE_COUNT));
-             assertEquals("1", metadata.get(Metadata.PARAGRAPH_COUNT));
-             assertEquals("14", metadata.get(Metadata.WORD_COUNT));
-             assertEquals("78", metadata.get(Metadata.CHARACTER_COUNT));
-             assertEquals("0", metadata.get(Metadata.TABLE_COUNT));
-             assertEquals("0", metadata.get(Metadata.OBJECT_COUNT));
-             assertEquals("0", metadata.get(Metadata.IMAGE_COUNT));
-             
-             // Check the very old style statistics (these will be removed shortly)
-             assertEquals("0", metadata.get("nbTab"));
-             assertEquals("0", metadata.get("nbObject"));
-             assertEquals("0", metadata.get("nbImg"));
-             assertEquals("1", metadata.get("nbPage"));
-             assertEquals("1", metadata.get("nbPara"));
-             assertEquals("14", metadata.get("nbWord"));
-             assertEquals("78", metadata.get("nbCharacter"));
+               assertEquals(
+                       "application/vnd.oasis.opendocument.text",
+                       metadata.get(Metadata.CONTENT_TYPE));
+               assertEquals("en-US", metadata.get(Metadata.LANGUAGE));
+               assertEquals("PT1M7S", metadata.get(Metadata.EDIT_TIME));
+               assertEquals(
+                       "NeoOffice/2.2$Unix OpenOffice.org_project/680m18$Build-9161",
+                       metadata.get("generator"));
+
+               // Check date metadata, both old-style and new-style
+               assertEquals("2007-09-14T11:07:10", metadata.get(TikaCoreProperties.MODIFIED));
+               assertEquals("2007-09-14T11:07:10", metadata.get(Metadata.MODIFIED));
+               assertEquals("2007-09-14T11:07:10", metadata.get(Metadata.DATE));
+               assertEquals("2007-09-14T11:06:08", metadata.get(TikaCoreProperties.CREATED));
+               assertEquals("2007-09-14T11:06:08", metadata.get(Metadata.CREATION_DATE));
+
+               // Check the document statistics
+               assertEquals("1", metadata.get(Office.PAGE_COUNT));
+               assertEquals("1", metadata.get(Office.PARAGRAPH_COUNT));
+               assertEquals("14", metadata.get(Office.WORD_COUNT));
+               assertEquals("78", metadata.get(Office.CHARACTER_COUNT));
+               assertEquals("0", metadata.get(Office.TABLE_COUNT));
+               assertEquals("0", metadata.get(Office.OBJECT_COUNT));
+               assertEquals("0", metadata.get(Office.IMAGE_COUNT));
+
+               // Check the Tika-1.0 style document statistics
+               assertEquals("1", metadata.get(Metadata.PAGE_COUNT));
+               assertEquals("1", metadata.get(Metadata.PARAGRAPH_COUNT));
+               assertEquals("14", metadata.get(Metadata.WORD_COUNT));
+               assertEquals("78", metadata.get(Metadata.CHARACTER_COUNT));
+               assertEquals("0", metadata.get(Metadata.TABLE_COUNT));
+               assertEquals("0", metadata.get(Metadata.OBJECT_COUNT));
+               assertEquals("0", metadata.get(Metadata.IMAGE_COUNT));
+
+               // Check the very old style statistics (these will be removed shortly)
+               assertEquals("0", metadata.get("nbTab"));
+               assertEquals("0", metadata.get("nbObject"));
+               assertEquals("0", metadata.get("nbImg"));
+               assertEquals("1", metadata.get("nbPage"));
+               assertEquals("1", metadata.get("nbPara"));
+               assertEquals("14", metadata.get("nbWord"));
+               assertEquals("78", metadata.get("nbCharacter"));
 
-             // Custom metadata tags present but without values
-             assertEquals(null, metadata.get("custom:Info 1"));
-             assertEquals(null, metadata.get("custom:Info 2"));
-             assertEquals(null, metadata.get("custom:Info 3"));
-             assertEquals(null, metadata.get("custom:Info 4"));
+               // Custom metadata tags present but without values
+               assertEquals(null, metadata.get("custom:Info 1"));
+               assertEquals(null, metadata.get("custom:Info 2"));
+               assertEquals(null, metadata.get("custom:Info 3"));
+               assertEquals(null, metadata.get("custom:Info 4"));
 
-             String content = handler.toString();
-             assertTrue(content.contains(
-                   "This is a sample Open Office document,"
-                   + " written in NeoOffice 2.2.1 for the Mac."));
+               String content = handler.toString();
+               assertTrue(content.contains(
+                       "This is a sample Open Office document,"
+                               + " written in NeoOffice 2.2.1 for the Mac."));
-          } finally {
-             input.close();
-          }
+           }
        }
    }
 
@@ -147,62 +141,59 @@
     *  OO2 file with different metadata in it
     */
     @Test
-   public void testOO2Metadata() throws Exception {
+    public void testOO2Metadata() throws Exception {
-      InputStream input = ODFParserTest.class.getResourceAsStream(
-            "/test-documents/testOpenOffice2.odf");
-      try {
+        try (InputStream input = ODFParserTest.class.getResourceAsStream(
+                "/test-documents/testOpenOffice2.odf")) {
-           Metadata metadata = new Metadata();
-           ContentHandler handler = new BodyContentHandler();
-           new OpenDocumentParser().parse(input, handler, metadata);
-  
-           assertEquals(
-                   "application/vnd.oasis.opendocument.formula",
-                   metadata.get(Metadata.CONTENT_TYPE));
-           assertEquals(null, metadata.get(TikaCoreProperties.MODIFIED));
-           assertEquals("2006-01-27T11:55:22", metadata.get(Metadata.CREATION_DATE));
-           assertEquals("The quick brown fox jumps over the lazy dog", 
-                   metadata.get(TikaCoreProperties.TITLE));
-           assertEquals("Gym class featuring a brown fox and lazy dog", 
-                   metadata.get(TikaCoreProperties.DESCRIPTION));
-           assertEquals("Gym class featuring a brown fox and lazy dog", 
-                   metadata.get(OfficeOpenXMLCore.SUBJECT));
-           assertEquals("Gym class featuring a brown fox and lazy dog", 
-                   metadata.get(Metadata.SUBJECT));
-           assertEquals("PT0S", metadata.get(Metadata.EDIT_TIME));
-           assertEquals("1", metadata.get("editing-cycles"));
-           assertEquals(
-                   "OpenOffice.org/2.2$Win32 OpenOffice.org_project/680m14$Build-9134",
-                   metadata.get("generator"));
-           assertEquals("Pangram, fox, dog", metadata.get(Metadata.KEYWORDS));
-           
-           // User defined metadata
-           assertEquals("Text 1", metadata.get("custom:Info 1"));
-           assertEquals("2", metadata.get("custom:Info 2"));
-           assertEquals("false", metadata.get("custom:Info 3"));
-           assertEquals("true", metadata.get("custom:Info 4"));
-           
-           // No statistics present
-           assertEquals(null, metadata.get(Metadata.PAGE_COUNT));
-           assertEquals(null, metadata.get(Metadata.PARAGRAPH_COUNT));
-           assertEquals(null, metadata.get(Metadata.WORD_COUNT));
-           assertEquals(null, metadata.get(Metadata.CHARACTER_COUNT));
-           assertEquals(null, metadata.get(Metadata.TABLE_COUNT));
-           assertEquals(null, metadata.get(Metadata.OBJECT_COUNT));
-           assertEquals(null, metadata.get(Metadata.IMAGE_COUNT));
-           assertEquals(null, metadata.get("nbTab"));
-           assertEquals(null, metadata.get("nbObject"));
-           assertEquals(null, metadata.get("nbImg"));
-           assertEquals(null, metadata.get("nbPage"));
-           assertEquals(null, metadata.get("nbPara"));
-           assertEquals(null, metadata.get("nbWord"));
-           assertEquals(null, metadata.get("nbCharacter"));
-  
-           // Note - contents of maths files not currently supported
-           String content = handler.toString();
-           assertEquals("", content);
+            Metadata metadata = new Metadata();
+            ContentHandler handler = new BodyContentHandler();
+            new OpenDocumentParser().parse(input, handler, metadata);
+
+            assertEquals(
+                    "application/vnd.oasis.opendocument.formula",
+                    metadata.get(Metadata.CONTENT_TYPE));
+            assertEquals(null, metadata.get(TikaCoreProperties.MODIFIED));
+            assertEquals("2006-01-27T11:55:22", metadata.get(Metadata.CREATION_DATE));
+            assertEquals("The quick brown fox jumps over the lazy dog",
+                    metadata.get(TikaCoreProperties.TITLE));
+            assertEquals("Gym class featuring a brown fox and lazy dog",
+                    metadata.get(TikaCoreProperties.DESCRIPTION));
+            assertEquals("Gym class featuring a brown fox and lazy dog",
+                    metadata.get(OfficeOpenXMLCore.SUBJECT));
+            assertEquals("Gym class featuring a brown fox and lazy dog",
+                    metadata.get(Metadata.SUBJECT));
+            assertEquals("PT0S", metadata.get(Metadata.EDIT_TIME));
+            assertEquals("1", metadata.get("editing-cycles"));
+            assertEquals(
+                    "OpenOffice.org/2.2$Win32 OpenOffice.org_project/680m14$Build-9134",
+                    metadata.get("generator"));
+            assertEquals("Pangram, fox, dog", metadata.get(Metadata.KEYWORDS));
+
+            // User defined metadata
+            assertEquals("Text 1", metadata.get("custom:Info 1"));
+            assertEquals("2", metadata.get("custom:Info 2"));
+            assertEquals("false", metadata.get("custom:Info 3"));
+            assertEquals("true", metadata.get("custom:Info 4"));
+
+            // No statistics present
+            assertEquals(null, metadata.get(Metadata.PAGE_COUNT));
+            assertEquals(null, metadata.get(Metadata.PARAGRAPH_COUNT));
+            assertEquals(null, metadata.get(Metadata.WORD_COUNT));
+            assertEquals(null, metadata.get(Metadata.CHARACTER_COUNT));
+            assertEquals(null, metadata.get(Metadata.TABLE_COUNT));
+            assertEquals(null, metadata.get(Metadata.OBJECT_COUNT));
+            assertEquals(null, metadata.get(Metadata.IMAGE_COUNT));
+            assertEquals(null, metadata.get("nbTab"));
+            assertEquals(null, metadata.get("nbObject"));
+            assertEquals(null, metadata.get("nbImg"));
+            assertEquals(null, metadata.get("nbPage"));
+            assertEquals(null, metadata.get("nbPara"));
+            assertEquals(null, metadata.get("nbWord"));
+            assertEquals(null, metadata.get("nbCharacter"));
+
+            // Note - contents of maths files not currently supported
+            String content = handler.toString();
+            assertEquals("", content);
-      } finally {
-          input.close();
-      }
+        }
    }
 
    /**
@@ -210,167 +201,146 @@
     */
     @Test
    public void testOO3Metadata() throws Exception {
-      InputStream input = ODFParserTest.class.getResourceAsStream(
-            "/test-documents/testODFwithOOo3.odt");
-      try {
+        try (InputStream input = ODFParserTest.class.getResourceAsStream(
+                "/test-documents/testODFwithOOo3.odt")) {
-           Metadata metadata = new Metadata();
-           ContentHandler handler = new BodyContentHandler();
-           new OpenDocumentParser().parse(input, handler, metadata);
-  
-           assertEquals(
-                   "application/vnd.oasis.opendocument.text",
-                   metadata.get(Metadata.CONTENT_TYPE));
-           assertEquals("2009-10-05T21:22:38", metadata.get(TikaCoreProperties.MODIFIED));
-           assertEquals("2009-10-05T19:04:01", metadata.get(TikaCoreProperties.CREATED));
-           assertEquals("2009-10-05T19:04:01", metadata.get(Metadata.CREATION_DATE));
-           assertEquals("Apache Tika", metadata.get(TikaCoreProperties.TITLE));
-           assertEquals("Test document", metadata.get(OfficeOpenXMLCore.SUBJECT));
-           assertEquals("Test document", metadata.get(Metadata.SUBJECT));
-           assertEquals("A rather complex document", metadata.get(TikaCoreProperties.DESCRIPTION));
-           assertEquals("Bart Hanssens", metadata.get(TikaCoreProperties.CREATOR));
-           assertEquals("Bart Hanssens", metadata.get("initial-creator"));
-           assertEquals("2", metadata.get("editing-cycles"));
-           assertEquals("PT02H03M24S", metadata.get(Metadata.EDIT_TIME));
-           assertEquals(
-                   "OpenOffice.org/3.1$Unix OpenOffice.org_project/310m19$Build-9420",
-                   metadata.get("generator"));
-           assertEquals("Apache, Lucene, Tika", metadata.get(Metadata.KEYWORDS));
-           
-           // User defined metadata
-           assertEquals("Bart Hanssens", metadata.get("custom:Editor"));
-           assertEquals(null, metadata.get("custom:Info 2"));
-           assertEquals(null, metadata.get("custom:Info 3"));
-           assertEquals(null, metadata.get("custom:Info 4"));
-           
-           // Check the document statistics
-           assertEquals("2", metadata.get(Office.PAGE_COUNT));
-           assertEquals("13", metadata.get(Office.PARAGRAPH_COUNT));
-           assertEquals("54", metadata.get(Office.WORD_COUNT));
-           assertEquals("351", metadata.get(Office.CHARACTER_COUNT));
-           assertEquals("0", metadata.get(Office.TABLE_COUNT));
-           assertEquals("2", metadata.get(Office.OBJECT_COUNT));
-           assertEquals("0", metadata.get(Office.IMAGE_COUNT));
-           
-           // Check the Tika-1.0 style document statistics
-           assertEquals("2", metadata.get(Metadata.PAGE_COUNT));
-           assertEquals("13", metadata.get(Metadata.PARAGRAPH_COUNT));
-           assertEquals("54", metadata.get(Metadata.WORD_COUNT));
-           assertEquals("351", metadata.get(Metadata.CHARACTER_COUNT));
-           assertEquals("0", metadata.get(Metadata.TABLE_COUNT));
-           assertEquals("2", metadata.get(Metadata.OBJECT_COUNT));
-           assertEquals("0", metadata.get(Metadata.IMAGE_COUNT));
-           
-           // Check the old style statistics (these will be removed shortly)
-           assertEquals("0", metadata.get("nbTab"));
-           assertEquals("2", metadata.get("nbObject"));
-           assertEquals("0", metadata.get("nbImg"));
-           assertEquals("2", metadata.get("nbPage"));
-           assertEquals("13", metadata.get("nbPara"));
-           assertEquals("54", metadata.get("nbWord"));
-           assertEquals("351", metadata.get("nbCharacter"));
-  
-           String content = handler.toString();
-           assertTrue(content.contains(
-                 "Apache Tika Tika is part of the Lucene project."
-           ));
+            Metadata metadata = new Metadata();
+            ContentHandler handler = new BodyContentHandler();
+            new OpenDocumentParser().parse(input, handler, metadata);
+
+            assertEquals(
+                    "application/vnd.oasis.opendocument.text",
+                    metadata.get(Metadata.CONTENT_TYPE));
+            assertEquals("2009-10-05T21:22:38", metadata.get(TikaCoreProperties.MODIFIED));
+            assertEquals("2009-10-05T19:04:01", metadata.get(TikaCoreProperties.CREATED));
+            assertEquals("2009-10-05T19:04:01", metadata.get(Metadata.CREATION_DATE));
+            assertEquals("Apache Tika", metadata.get(TikaCoreProperties.TITLE));
+            assertEquals("Test document", metadata.get(OfficeOpenXMLCore.SUBJECT));
+            assertEquals("Test document", metadata.get(Metadata.SUBJECT));
+            assertEquals("A rather complex document", metadata.get(TikaCoreProperties.DESCRIPTION));
+            assertEquals("Bart Hanssens", metadata.get(TikaCoreProperties.CREATOR));
+            assertEquals("Bart Hanssens", metadata.get("initial-creator"));
+            assertEquals("2", metadata.get("editing-cycles"));
+            assertEquals("PT02H03M24S", metadata.get(Metadata.EDIT_TIME));
+            assertEquals(
+                    "OpenOffice.org/3.1$Unix OpenOffice.org_project/310m19$Build-9420",
+                    metadata.get("generator"));
+            assertEquals("Apache, Lucene, Tika", metadata.get(Metadata.KEYWORDS));
+
+            // User defined metadata
+            assertEquals("Bart Hanssens", metadata.get("custom:Editor"));
+            assertEquals(null, metadata.get("custom:Info 2"));
+            assertEquals(null, metadata.get("custom:Info 3"));
+            assertEquals(null, metadata.get("custom:Info 4"));
+
+            // Check the document statistics
+            assertEquals("2", metadata.get(Office.PAGE_COUNT));
+            assertEquals("13", metadata.get(Office.PARAGRAPH_COUNT));
+            assertEquals("54", metadata.get(Office.WORD_COUNT));
+            assertEquals("351", metadata.get(Office.CHARACTER_COUNT));
+            assertEquals("0", metadata.get(Office.TABLE_COUNT));
+            assertEquals("2", metadata.get(Office.OBJECT_COUNT));
+            assertEquals("0", metadata.get(Office.IMAGE_COUNT));
+
+            // Check the Tika-1.0 style document statistics
+            assertEquals("2", metadata.get(Metadata.PAGE_COUNT));
+            assertEquals("13", metadata.get(Metadata.PARAGRAPH_COUNT));
+            assertEquals("54", metadata.get(Metadata.WORD_COUNT));
+            assertEquals("351", metadata.get(Metadata.CHARACTER_COUNT));
+            assertEquals("0", metadata.get(Metadata.TABLE_COUNT));
+            assertEquals("2", metadata.get(Metadata.OBJECT_COUNT));
+            assertEquals("0", metadata.get(Metadata.IMAGE_COUNT));
+
+            // Check the old style statistics (these will be removed shortly)
+            assertEquals("0", metadata.get("nbTab"));
+            assertEquals("2", metadata.get("nbObject"));
+            assertEquals("0", metadata.get("nbImg"));
+            assertEquals("2", metadata.get("nbPage"));
+            assertEquals("13", metadata.get("nbPara"));
+            assertEquals("54", metadata.get("nbWord"));
+            assertEquals("351", metadata.get("nbCharacter"));
+
+            String content = handler.toString();
+            assertTrue(content.contains(
+                    "Apache Tika Tika is part of the Lucene project."
+            ));
-      } finally {
-          input.close();
-      }
+        }
    }
 
     @Test
     public void testODPMasterFooter() throws Exception {
-        InputStream input = ODFParserTest.class.getResourceAsStream(
-            "/test-documents/testMasterFooter.odp");
-        try {
+        try (InputStream input = ODFParserTest.class.getResourceAsStream(
+                "/test-documents/testMasterFooter.odp")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new AutoDetectParser().parse(input, handler, metadata);
-  
+
             String content = handler.toString();
             assertContains("Master footer is here", content);
-        } finally {
-            input.close();
         }
     }  
 
     @Test
     public void testODTFooter() throws Exception {
-        InputStream input = ODFParserTest.class.getResourceAsStream(
-            "/test-documents/testFooter.odt");
-        try {
+        try (InputStream input = ODFParserTest.class.getResourceAsStream(
+                "/test-documents/testFooter.odt")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new AutoDetectParser().parse(input, handler, metadata);
-  
+
             String content = handler.toString();
             assertContains("Here is some text...", content);
             assertContains("Here is some text on page 2", content);
             assertContains("Here is footer text", content);
-        } finally {
-            input.close();
         }
     }  
 
     @Test
     public void testODSFooter() throws Exception {
-        InputStream input = ODFParserTest.class.getResourceAsStream(
-            "/test-documents/testFooter.ods");
-        try {
+        try (InputStream input = ODFParserTest.class.getResourceAsStream(
+                "/test-documents/testFooter.ods")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new AutoDetectParser().parse(input, handler, metadata);
-  
+
             String content = handler.toString();
             assertContains("Here is a footer in the center area", content);
-        } finally {
-            input.close();
         }
     }  
     
     @Test
     public void testFromFile() throws Exception {
-       TikaInputStream tis = TikaInputStream.get(this.getClass().getResource(
-               "/test-documents/testODFwithOOo3.odt"));
+        try (TikaInputStream tis = TikaInputStream.get(this.getClass().getResource(
+                "/test-documents/testODFwithOOo3.odt"))) {
-       assertEquals(true, tis.hasFile());
+            assertEquals(true, tis.hasFile());
-
-       OpenDocumentParser parser = new OpenDocumentParser();
+            OpenDocumentParser parser = new OpenDocumentParser();
-
-       try {
-           Metadata metadata = new Metadata();
-           ContentHandler handler = new BodyContentHandler();
-           parser.parse(tis, handler, metadata, new ParseContext());
+            Metadata metadata = new Metadata();
+            ContentHandler handler = new BodyContentHandler();
+            parser.parse(tis, handler, metadata, new ParseContext());
 
-           assertEquals(
-                   "application/vnd.oasis.opendocument.text",
-                   metadata.get(Metadata.CONTENT_TYPE));
+            assertEquals(
+                    "application/vnd.oasis.opendocument.text",
+                    metadata.get(Metadata.CONTENT_TYPE));
 
-           String content = handler.toString();
-           assertContains("Tika is part of the Lucene project.", content);
+            String content = handler.toString();
+            assertContains("Tika is part of the Lucene project.", content);
-       } finally {
-           tis.close();
-       }
+        }
     }
     
     @Test
     public void testNPEFromFile() throws Exception {
-        TikaInputStream tis = TikaInputStream.get(this.getClass().getResource(
-                "/test-documents/testNPEOpenDocument.odt"));
         OpenDocumentParser parser = new OpenDocumentParser();
-
-        try {
+        try (TikaInputStream tis = TikaInputStream.get(this.getClass().getResource(
+                "/test-documents/testNPEOpenDocument.odt"))) {
-          Metadata metadata = new Metadata();
-          ContentHandler handler = new BodyContentHandler();
-          parser.parse(tis, handler, metadata, new ParseContext());
+            Metadata metadata = new Metadata();
+            ContentHandler handler = new BodyContentHandler();
+            parser.parse(tis, handler, metadata, new ParseContext());
 
-          assertEquals(
-                  "application/vnd.oasis.opendocument.text",
-                  metadata.get(Metadata.CONTENT_TYPE));
+            assertEquals(
+                    "application/vnd.oasis.opendocument.text",
+                    metadata.get(Metadata.CONTENT_TYPE));
 
-          String content = handler.toString();
-          assertContains("primero hay que generar un par de claves", content);
+            String content = handler.toString();
+            assertContains("primero hay que generar un par de claves", content);
-        } finally {
-          tis.close();
         }
     }
 
@@ -390,8 +360,7 @@
     @Test
     public void testNullStylesInODTFooter() throws Exception {
         Parser parser = new OpenDocumentParser();
-        InputStream input = ODFParserTest.class.getResourceAsStream("/test-documents/testODT-TIKA-6000.odt");
-        try {
+        try (InputStream input = ODFParserTest.class.getResourceAsStream("/test-documents/testODT-TIKA-6000.odt")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             parser.parse(input, handler, metadata, new ParseContext());
@@ -404,8 +373,6 @@
             assertContains("Copyright and License", content);
             assertContains("Changer la langue", content);
             assertContains("La page d’accueil permet de faire une recherche simple", content);
-        } finally {
-            input.close();
         }
     }
 }
Index: tika-core/src/main/java/org/apache/tika/parser/external/ExternalParsersFactory.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/main/java/org/apache/tika/parser/external/ExternalParsersFactory.java	(revision 1696828)
+++ tika-core/src/main/java/org/apache/tika/parser/external/ExternalParsersFactory.java	(revision )
@@ -62,13 +62,10 @@
    public static List<ExternalParser> create(URL... urls) throws IOException, TikaException {
       List<ExternalParser> parsers = new ArrayList<ExternalParser>();
       for(URL url : urls) {
-         InputStream stream = url.openStream();
-         try {
+         try (InputStream stream = url.openStream()) {
             parsers.addAll(
                   ExternalParsersConfigReader.read(stream)
             );
-         } finally {
-            stream.close();
          }
       }
       return parsers;
Index: tika-core/src/main/java/org/apache/tika/io/LookaheadInputStream.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/main/java/org/apache/tika/io/LookaheadInputStream.java	(revision 1696828)
+++ tika-core/src/main/java/org/apache/tika/io/LookaheadInputStream.java	(revision )
@@ -28,11 +28,8 @@
  * <p>
  * The recommended usage pattern of this class is:
  * <pre>
- *     InputStream lookahead = new LookaheadInputStream(stream, n);
- *     try {
+ *     try (InputStream lookahead = new LookaheadInputStream(stream, n)) {
  *         processStream(lookahead);
- *     } finally {
- *         lookahead.close();
  *     }
  * </pre>
  * <p>
Index: tika-parsers/src/test/java/org/apache/tika/parser/microsoft/VisioParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/microsoft/VisioParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/microsoft/VisioParserTest.java	(revision )
@@ -32,9 +32,8 @@
 
     @Test
     public void testVisioParser() throws Exception {
-        InputStream input = VisioParserTest.class.getResourceAsStream(
-                "/test-documents/testVISIO.vsd");
-        try {
+        try (InputStream input = VisioParserTest.class.getResourceAsStream(
+                "/test-documents/testVISIO.vsd")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new OfficeParser().parse(input, handler, metadata, new ParseContext());
@@ -46,8 +45,6 @@
             assertEquals("Hogwarts", metadata.get(TikaCoreProperties.CREATOR));
             String content = handler.toString();
             assertContains("Some random text, on a page", content);
-        } finally {
-            input.close();
         }
     }
 
Index: tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java	(revision 1696828)
+++ tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java	(revision )
@@ -91,8 +91,7 @@
         }
 
         // Use the delegate parser to parse this entry
-        TemporaryResources tmp = new TemporaryResources();
-        try {
+        try (TemporaryResources tmp = new TemporaryResources()) {
             final TikaInputStream newStream = TikaInputStream.get(new CloseShieldInputStream(stream), tmp);
             if (stream instanceof TikaInputStream) {
                 final Object container = ((TikaInputStream) stream).getOpenContainer();
@@ -110,8 +109,6 @@
         } catch (TikaException e) {
             // TODO: can we log a warning somehow?
             // Could not parse the entry, just skip the content
-        } finally {
-            tmp.close();
         }
 
         if(outputHtml) {
Index: tika-parsers/src/main/java/org/apache/tika/parser/pkg/ZipContainerDetector.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/pkg/ZipContainerDetector.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/pkg/ZipContainerDetector.java	(revision )
@@ -188,11 +188,8 @@
         try {
             ZipArchiveEntry mimetype = zip.getEntry("mimetype");
             if (mimetype != null) {
-                InputStream stream = zip.getInputStream(mimetype);
-                try {
+                try (InputStream stream = zip.getInputStream(mimetype)) {
                     return MediaType.parse(IOUtils.toString(stream, UTF_8));
-                } finally {
-                    stream.close();
                 }
             } else {
                 return null;
Index: tika-parsers/src/main/java/org/apache/tika/parser/jdbc/SQLite3DBParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/jdbc/SQLite3DBParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/jdbc/SQLite3DBParser.java	(revision )
@@ -92,18 +92,13 @@
                                          ParseContext context) throws SQLException {
         List<String> tableNames = new LinkedList<String>();
 
-        Statement st = null;
-        try {
-            st = connection.createStatement();
+        try (Statement st = connection.createStatement()) {
             String sql = "SELECT name FROM sqlite_master WHERE type='table'";
             ResultSet rs = st.executeQuery(sql);
 
             while (rs.next()) {
                 tableNames.add(rs.getString(1));
             }
-        } finally {
-            if (st != null)
-                st.close();
         }
         return tableNames;
     }
Index: tika-example/src/main/java/org/apache/tika/example/LuceneIndexerExtended.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-example/src/main/java/org/apache/tika/example/LuceneIndexerExtended.java	(revision 1696828)
+++ tika-example/src/main/java/org/apache/tika/example/LuceneIndexerExtended.java	(revision )
@@ -41,29 +41,23 @@
 	}
 
 	public static void main(String[] args) throws Exception {
-		IndexWriter writer = new IndexWriter(new SimpleFSDirectory(new File(
+		try (IndexWriter writer = new IndexWriter(new SimpleFSDirectory(new File(
 				args[0])), new StandardAnalyzer(Version.LUCENE_30),
-				MaxFieldLength.UNLIMITED);
-		try {
+				MaxFieldLength.UNLIMITED)) {
 			LuceneIndexer indexer = new LuceneIndexer(new Tika(), writer);
 			for (int i = 1; i < args.length; i++) {
 				indexer.indexDocument(new File(args[i]));
 			}
-		} finally {
-			writer.close();
 		}
 	}
 
 	public void indexDocument(File file) throws Exception {
-		Reader fulltext = tika.parse(file);
-		try {
+		try (Reader fulltext = tika.parse(file)) {
 			Document document = new Document();
 			document.add(new Field("filename", file.getName(), Store.YES,
 					Index.ANALYZED));
 			document.add(new Field("fulltext", fulltext));
 			writer.addDocument(document);
-		} finally {
-			fulltext.close();
 		}
 	}
 
Index: tika-example/src/main/java/org/apache/tika/example/GrabPhoneNumbersExample.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-example/src/main/java/org/apache/tika/example/GrabPhoneNumbersExample.java	(revision 1696828)
+++ tika-example/src/main/java/org/apache/tika/example/GrabPhoneNumbersExample.java	(revision )
@@ -72,12 +72,8 @@
         // The PhoneExtractingContentHandler will examine any characters for phone numbers before passing them
         // to the underlying Handler.
         PhoneExtractingContentHandler handler = new PhoneExtractingContentHandler(new BodyContentHandler(), metadata);
-        InputStream stream = new FileInputStream(file);
-        try {
+        try (InputStream stream = new FileInputStream(file)) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        }
-        finally {
-            stream.close();
         }
         String[] numbers = metadata.getValues("phonenumbers");
         for (String number : numbers) {
Index: tika-parsers/src/main/java/org/apache/tika/parser/code/SourceCodeParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/code/SourceCodeParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/code/SourceCodeParser.java	(revision )
@@ -83,9 +83,7 @@
   public void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context)
       throws IOException, SAXException, TikaException {
 
-    AutoDetectReader reader = new AutoDetectReader(new CloseShieldInputStream(stream), metadata, context.get(ServiceLoader.class, LOADER));
-
-    try {
+    try (AutoDetectReader reader = new AutoDetectReader(new CloseShieldInputStream(stream), metadata, context.get(ServiceLoader.class, LOADER))) {
       Charset charset = reader.getCharset();
       String mediaType = metadata.get(Metadata.CONTENT_TYPE);
       String name = metadata.get(Metadata.RESOURCE_NAME_KEY);
@@ -107,9 +105,9 @@
         }
         metadata.set("LoC", String.valueOf(nbLines));
         Renderer renderer = getRenderer(type.toString());
-        
+
         String codeAsHtml = renderer.highlight(name, out.toString(), charset.name(), false);
-        
+
         Schema schema = context.get(Schema.class, HTML_SCHEMA);
 
         org.ccil.cowan.tagsoup.Parser parser = new org.ccil.cowan.tagsoup.Parser();
@@ -117,8 +115,6 @@
         parser.setContentHandler(handler);
         parser.parse(new InputSource(new StringReader(codeAsHtml)));
       }
-    } finally {
-      reader.close();
     }
 
   }
Index: tika-parsers/src/main/java/org/apache/tika/parser/isatab/ISATabUtils.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/isatab/ISATabUtils.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/isatab/ISATabUtils.java	(revision )
@@ -62,12 +62,9 @@
 	
 	public static void parseInvestigation(InputStream stream, XHTMLContentHandler handler, Metadata metadata, ParseContext context, String studyFileName) throws IOException, TikaException, SAXException {
 		// Automatically detect the character encoding
-		AutoDetectReader reader = new AutoDetectReader(new CloseShieldInputStream(stream), metadata, context.get(ServiceLoader.class, LOADER));
-
-		try {
+		try (AutoDetectReader reader = new AutoDetectReader(new CloseShieldInputStream(stream),
+				metadata, context.get(ServiceLoader.class, LOADER))) {
 			extractMetadata(reader, metadata, studyFileName);
-		} finally {
-			reader.close();
 		}
 	}
 	
@@ -78,11 +75,10 @@
 	public static void parseStudy(InputStream stream, XHTMLContentHandler xhtml, Metadata metadata, ParseContext context) throws IOException, TikaException, SAXException {
 		TikaInputStream tis = TikaInputStream.get(stream);
 		// Automatically detect the character encoding
-		AutoDetectReader reader = new AutoDetectReader(new CloseShieldInputStream(tis), metadata, context.get(ServiceLoader.class, LOADER));
-		CSVParser csvParser = null;
-		
+
-		try {
-			csvParser = new CSVParser(reader, CSVFormat.TDF);
+		try (AutoDetectReader reader = new AutoDetectReader(new CloseShieldInputStream(tis),
+				metadata, context.get(ServiceLoader.class, LOADER));
+			 CSVParser csvParser = new CSVParser(reader, CSVFormat.TDF)) {
 			Iterator<CSVRecord> iterator = csvParser.iterator();
 
 			xhtml.startElement("table");
@@ -112,10 +108,6 @@
 			xhtml.endElement("tbody");
 
 			xhtml.endElement("table");
-
-		} finally {
-			reader.close();
-			csvParser.close();
 		}
 	}
 	
@@ -123,16 +115,14 @@
 		TikaInputStream tis = TikaInputStream.get(stream);
 		
 		// Automatically detect the character encoding
-		AutoDetectReader reader = new AutoDetectReader(new CloseShieldInputStream(tis), metadata, context.get(ServiceLoader.class, LOADER));
-		CSVParser csvParser = null;
-		
+
-		try {
-			csvParser = new CSVParser(reader, CSVFormat.TDF);
-			
+		try (AutoDetectReader reader = new AutoDetectReader(new CloseShieldInputStream(tis),
+				metadata, context.get(ServiceLoader.class, LOADER));
+			 CSVParser csvParser = new CSVParser(reader, CSVFormat.TDF)) {
 			xhtml.startElement("table");
-			
+
 			Iterator<CSVRecord> iterator = csvParser.iterator();
-			
+
 			xhtml.startElement("thead");
 			if (iterator.hasNext()) {
 				CSVRecord record = iterator.next();
@@ -143,7 +133,7 @@
 				}
 			}
 			xhtml.endElement("thead");
-			
+
 			xhtml.startElement("tbody");
 			while (iterator.hasNext()) {
 				CSVRecord record = iterator.next();
@@ -156,12 +146,8 @@
 				xhtml.endElement("tr");
 			}
 			xhtml.endElement("tbody");
-			
+
 			xhtml.endElement("table");
-			
-		} finally {
-			reader.close();
-			csvParser.close();
 		}
 	}
 	
@@ -171,25 +157,20 @@
 		boolean studyTarget = false;
 				
 		Map<String, String> map = new HashMap<String, String>();
-		
+
-		CSVParser csvParser = null;
-		try {
-			csvParser = new CSVParser(reader, CSVFormat.TDF);
-			
+		try (CSVParser csvParser = new CSVParser(reader, CSVFormat.TDF)) {
 			Iterator<CSVRecord> iterator = csvParser.iterator();
-			
+
 			while (iterator.hasNext()) {
 				CSVRecord record = iterator.next();
 				String field = record.get(0);
 				if ((field.toUpperCase(Locale.ENGLISH).equals(field)) && (record.size() == 1)) {
 					investigationSection = Arrays.asList(sections).contains(field);
 					studySection = (studyFileName != null) && (field.equals(studySectionField));
-				}
-				else {
+				} else {
 					if (investigationSection) {
 						addMetadata(field, record, metadata);
-					}
-					else if (studySection) {
+					} else if (studySection) {
 						if (studyTarget) {
 							break;
 						}
@@ -200,16 +181,13 @@
 							mapStudyToMetadata(map, metadata);
 							studySection = false;
 						}
-					}
-					else if (studyTarget) {
+					} else if (studyTarget) {
 						addMetadata(field, record, metadata);
 					}
 				}
 			}
 		} catch (IOException ioe) {
 			throw ioe;
-		} finally {
-			csvParser.close();
 		}
 	}
 	
Index: tika-parsers/src/test/java/org/apache/tika/parser/solidworks/SolidworksParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/solidworks/SolidworksParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/solidworks/SolidworksParserTest.java	(revision )
@@ -36,16 +36,15 @@
      */
     @Test
     public void testPart2013SP2Parser() throws Exception {
-        InputStream input = SolidworksParserTest.class.getResourceAsStream(
-                "/test-documents/testsolidworksPart2013SP2.SLDPRT");
-        try {
+        try (InputStream input = SolidworksParserTest.class.getResourceAsStream(
+                "/test-documents/testsolidworksPart2013SP2.SLDPRT")) {
             ContentHandler handler = new BodyContentHandler();
             Metadata metadata = new Metadata();
             new OfficeParser().parse(input, handler, metadata, new ParseContext());
 
             //Check content type
             assertEquals("application/sldworks",metadata.get(Metadata.CONTENT_TYPE));
-             
+
             //Check properties
             assertEquals("2012-04-18T10:27:29Z", metadata.get(TikaCoreProperties.CREATED));
             assertEquals(null, metadata.get(TikaCoreProperties.CONTRIBUTOR));
@@ -56,8 +55,6 @@
             assertEquals(null, metadata.get(TikaCoreProperties.SOURCE));
             assertEquals("", metadata.get(TikaCoreProperties.TITLE));
             assertEquals("", metadata.get(TikaCoreProperties.KEYWORDS));
-        } finally {
-            input.close();
         }
     }
 
@@ -66,16 +63,15 @@
      */
     @Test
     public void testPart2014SP0Parser() throws Exception {
-        InputStream input = SolidworksParserTest.class.getResourceAsStream(
-                "/test-documents/testsolidworksPart2014SP0.SLDPRT");
-        try {
+        try (InputStream input = SolidworksParserTest.class.getResourceAsStream(
+                "/test-documents/testsolidworksPart2014SP0.SLDPRT")) {
             ContentHandler handler = new BodyContentHandler();
             Metadata metadata = new Metadata();
             new OfficeParser().parse(input, handler, metadata, new ParseContext());
 
             //Check content type
             assertEquals("application/sldworks",metadata.get(Metadata.CONTENT_TYPE));
-            
+
             //Check properties
             assertEquals("2012-04-18T10:27:29Z", metadata.get(TikaCoreProperties.CREATED));
             assertEquals(null, metadata.get(TikaCoreProperties.CONTRIBUTOR));
@@ -86,8 +82,6 @@
             assertEquals(null, metadata.get(TikaCoreProperties.SOURCE));
             assertEquals("", metadata.get(TikaCoreProperties.TITLE));
             assertEquals("", metadata.get(TikaCoreProperties.KEYWORDS));
-        } finally {
-            input.close();
         }
     }
 
@@ -96,16 +90,15 @@
      */
     @Test
     public void testAssembly2013SP2Parser() throws Exception {
-        InputStream input = SolidworksParserTest.class.getResourceAsStream(
-                "/test-documents/testsolidworksAssembly2013SP2.SLDASM");
-        try {
+        try (InputStream input = SolidworksParserTest.class.getResourceAsStream(
+                "/test-documents/testsolidworksAssembly2013SP2.SLDASM")) {
             ContentHandler handler = new BodyContentHandler();
             Metadata metadata = new Metadata();
             new OfficeParser().parse(input, handler, metadata, new ParseContext());
 
             //Check content type
             assertEquals("application/sldworks",metadata.get(Metadata.CONTENT_TYPE));
-            
+
             //Check properties
             assertEquals("2012-04-25T09:51:38Z", metadata.get(TikaCoreProperties.CREATED));
             assertEquals(null, metadata.get(TikaCoreProperties.CONTRIBUTOR));
@@ -116,8 +109,6 @@
             assertEquals(null, metadata.get(TikaCoreProperties.SOURCE));
             assertEquals("", metadata.get(TikaCoreProperties.TITLE));
             assertEquals("", metadata.get(TikaCoreProperties.KEYWORDS));
-        } finally {
-            input.close();
         }    	
     }
 
@@ -156,16 +147,15 @@
      */
     @Test
     public void testDrawing2013SP2Parser() throws Exception {
-        InputStream input = SolidworksParserTest.class.getResourceAsStream(
-                "/test-documents/testsolidworksDrawing2013SP2.SLDDRW");
-        try {
+        try (InputStream input = SolidworksParserTest.class.getResourceAsStream(
+                "/test-documents/testsolidworksDrawing2013SP2.SLDDRW")) {
             ContentHandler handler = new BodyContentHandler();
             Metadata metadata = new Metadata();
             new OfficeParser().parse(input, handler, metadata, new ParseContext());
 
             //Check content type
             assertEquals("application/sldworks",metadata.get(Metadata.CONTENT_TYPE));
-            
+
             //Check properties
             assertEquals("2012-07-03T12:05:29Z", metadata.get(TikaCoreProperties.CREATED));
             assertEquals(null, metadata.get(TikaCoreProperties.CONTRIBUTOR));
@@ -176,8 +166,6 @@
             assertEquals(null, metadata.get(TikaCoreProperties.SOURCE));
             assertEquals("", metadata.get(TikaCoreProperties.TITLE));
             assertEquals("", metadata.get(TikaCoreProperties.KEYWORDS));
-        } finally {
-            input.close();
         }    	
     }
 
@@ -186,16 +174,15 @@
      */
     @Test
     public void testDrawing2014SP0Parser() throws Exception {
-        InputStream input = SolidworksParserTest.class.getResourceAsStream(
-                "/test-documents/testsolidworksDrawing2014SP0.SLDDRW");
-        try {
+        try (InputStream input = SolidworksParserTest.class.getResourceAsStream(
+                "/test-documents/testsolidworksDrawing2014SP0.SLDDRW")) {
             ContentHandler handler = new BodyContentHandler();
             Metadata metadata = new Metadata();
             new OfficeParser().parse(input, handler, metadata, new ParseContext());
 
             //Check content type
             assertEquals("application/sldworks",metadata.get(Metadata.CONTENT_TYPE));
-            
+
             //Check properties
             assertEquals("2012-07-03T12:05:29Z", metadata.get(TikaCoreProperties.CREATED));
             assertEquals(null, metadata.get(TikaCoreProperties.CONTRIBUTOR));
@@ -206,8 +193,6 @@
             assertEquals(null, metadata.get(TikaCoreProperties.SOURCE));
             assertEquals("", metadata.get(TikaCoreProperties.TITLE));
             assertEquals("", metadata.get(TikaCoreProperties.KEYWORDS));
-        } finally {
-            input.close();
         }    	
     }
 }
Index: tika-parsers/src/main/java/org/apache/tika/parser/microsoft/AbstractPOIFSExtractor.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/microsoft/AbstractPOIFSExtractor.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/microsoft/AbstractPOIFSExtractor.java	(revision )
@@ -146,15 +146,12 @@
             // It's OOXML (has a ZipFile):
             Entry ooxml = dir.getEntry("Package");
 
-            TikaInputStream stream = TikaInputStream.get(
-                    new DocumentInputStream((DocumentEntry) ooxml));
-            try {
+            try (TikaInputStream stream = TikaInputStream.get(
+                    new DocumentInputStream((DocumentEntry) ooxml))) {
                 ZipContainerDetector detector = new ZipContainerDetector();
                 MediaType type = detector.detect(stream, new Metadata());
                 handleEmbeddedResource(stream, null, dir.getName(), type.toString(), xhtml, true);
                 return;
-            } finally {
-                stream.close();
             }
         }
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ProjectParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ProjectParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ProjectParserTest.java	(revision )
@@ -39,23 +39,17 @@
 
     @Test
     public void testProject2003() throws Exception {
-        InputStream input = ProjectParserTest.class.getResourceAsStream(
-                "/test-documents/testPROJECT2003.mpp");
-        try {
+        try (InputStream input = ProjectParserTest.class.getResourceAsStream(
+                "/test-documents/testPROJECT2003.mpp")) {
             doTestProject(input);
-        } finally {
-            input.close();
         }
     }
 
     @Test
     public void testProject2007() throws Exception {
-        InputStream input = ProjectParserTest.class.getResourceAsStream(
-                "/test-documents/testPROJECT2007.mpp");
-        try {
+        try (InputStream input = ProjectParserTest.class.getResourceAsStream(
+                "/test-documents/testPROJECT2007.mpp")) {
             doTestProject(input);
-        } finally {
-            input.close();
         }
     }
 
Index: tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java	(revision )
@@ -93,8 +93,7 @@
         xhtml.startDocument();
 
         InputStreamReader isr = new InputStreamReader(stream, charsetName);
-        BufferedReader reader = new BufferedReader(isr);
-        try {
+        try (BufferedReader reader = new BufferedReader(isr)) {
             String curLine = reader.readLine();
             int mailItem = 0;
             do {
@@ -140,9 +139,6 @@
                 }
 
             } while (curLine != null && !Thread.currentThread().isInterrupted());
-
-        } finally {
-            reader.close();
         }
 
         xhtml.endDocument();
Index: tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java	(revision )
@@ -67,8 +67,7 @@
         ParseContext context = new ParseContext();
         context.set(Locale.class, Locale.US);
 
-        InputStream input = getTestDocument("testEXCEL.xlsx");
-        try {
+        try (InputStream input = getTestDocument("testEXCEL.xlsx")) {
             parser.parse(input, handler, metadata, context);
 
             assertEquals(
@@ -86,8 +85,6 @@
             assertContains("196", content);
             assertNotContained("196.0", content);
             assertEquals("false", metadata.get(TikaMetadataKeys.PROTECTED));
-        } finally {
-            input.close();
         }
     }
 
@@ -98,8 +95,7 @@
         ParseContext context = new ParseContext();
         context.set(Locale.class, Locale.US);
 
-        InputStream input = getTestDocument("testEXCEL-formats.xlsx");
-        try {
+        try (InputStream input = getTestDocument("testEXCEL-formats.xlsx")) {
             parser.parse(input, handler, metadata, context);
 
             assertEquals(
@@ -161,8 +157,6 @@
              // Custom Number ("At" h:mm AM/PM "on" dddd mmmm d"," yyyy)
              assertContains("At 4:20 AM on Thursday May 17, 2007", content);
              **************************************************************************/
-        } finally {
-            input.close();
         }
     }
 
@@ -174,8 +168,7 @@
         ParseContext context = new ParseContext();
         context.set(Locale.class, Locale.US);
 
-        InputStream input = getTestDocument("testEXCEL.strict.xlsx");
-        try {
+        try (InputStream input = getTestDocument("testEXCEL.strict.xlsx")) {
             parser.parse(input, handler, metadata, context);
 
             assertEquals(
@@ -193,8 +186,6 @@
             assertContains("cb=sum", content);
             assertNotContained("13.0", content);
             assertEquals("false", metadata.get(TikaMetadataKeys.PROTECTED));
-        } finally {
-            input.close();
         }
     }
 
@@ -227,8 +218,7 @@
             ContentHandler handler = new BodyContentHandler();
             ParseContext context = new ParseContext();
 
-            InputStream input = getTestDocument(filename);
-            try {
+            try (InputStream input = getTestDocument(filename)) {
                 parser.parse(input, handler, metadata, context);
 
                 assertEquals(
@@ -265,8 +255,6 @@
                             content.contains("Mystery")
                     );
                 }
-            } finally {
-                input.close();
             }
         }
     }
@@ -315,11 +303,8 @@
             };
             ParseContext context = new ParseContext();
 
-            InputStream input = getTestDocument(filename);
-            try {
+            try (InputStream input = getTestDocument(filename)) {
                 parser.parse(input, handler, metadata, context);
-            } finally {
-                input.close();
             }
         }
     }
@@ -346,8 +331,7 @@
             ContentHandler handler = new BodyContentHandler();
             ParseContext context = new ParseContext();
 
-            InputStream input = getTestDocument(filename);
-            try {
+            try (InputStream input = getTestDocument(filename)) {
                 parser.parse(input, handler, metadata, context);
 
                 // Should get the metadata
@@ -357,8 +341,6 @@
                         metadata.get(Metadata.CONTENT_TYPE));
 
                 // But that's about it
-            } finally {
-                input.close();
             }
         }
     }
@@ -374,8 +356,7 @@
         ContentHandler handler = new BodyContentHandler();
         ParseContext context = new ParseContext();
 
-        InputStream input = getTestDocument("testWORD.docx");
-        try {
+        try (InputStream input = getTestDocument("testWORD.docx")) {
             parser.parse(input, handler, metadata, context);
             assertEquals(
                     "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
@@ -384,8 +365,6 @@
             assertEquals("Keith Bennett", metadata.get(TikaCoreProperties.CREATOR));
             assertEquals("Keith Bennett", metadata.get(Metadata.AUTHOR));
             assertTrue(handler.toString().contains("Sample Word Document"));
-        } finally {
-            input.close();
         }
     }
 
@@ -400,15 +379,12 @@
         ContentHandler handler = new BodyContentHandler();
         ParseContext context = new ParseContext();
 
-        InputStream input = getTestDocument("footnotes.docx");
-        try {
+        try (InputStream input = getTestDocument("footnotes.docx")) {
             parser.parse(input, handler, metadata, context);
             assertEquals(
                     "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
                     metadata.get(Metadata.CONTENT_TYPE));
             assertTrue(handler.toString().contains("snoska"));
-        } finally {
-            input.close();
         }
     }
 
@@ -496,8 +472,7 @@
         handler.setResult(new StreamResult(sw));
 
         // Try with a document containing various tables and formattings
-        InputStream input = getTestDocument("headerPic.docx");
-        try {
+        try (InputStream input = getTestDocument("headerPic.docx")) {
             parser.parse(input, handler, metadata, context);
             String xml = sw.toString();
             assertEquals(
@@ -505,8 +480,6 @@
                     metadata.get(Metadata.CONTENT_TYPE));
             // Check that custom headings came through
             assertTrue(xml.contains("<img"));
-        } finally {
-            input.close();
         }
     }
 
@@ -516,15 +489,14 @@
      */
     @Test
     public void testProtectedExcelSheets() throws Exception {
-        InputStream input = OOXMLParserTest.class
-                .getResourceAsStream("/test-documents/protectedSheets.xlsx");
 
         Parser parser = new AutoDetectParser();
         Metadata metadata = new Metadata();
         ContentHandler handler = new BodyContentHandler();
         ParseContext context = new ParseContext();
 
-        try {
+        try (InputStream input = OOXMLParserTest.class
+                .getResourceAsStream("/test-documents/protectedSheets.xlsx")) {
             parser.parse(input, handler, metadata, context);
 
             assertEquals(
@@ -532,8 +504,6 @@
                     metadata.get(Metadata.CONTENT_TYPE));
 
             assertEquals("true", metadata.get(TikaMetadataKeys.PROTECTED));
-        } finally {
-            input.close();
         }
     }
 
@@ -549,8 +519,7 @@
         ContentHandler handler = new BodyContentHandler();
         ParseContext context = new ParseContext();
 
-        InputStream input = getTestDocument("protectedFile.xlsx");
-        try {
+        try (InputStream input = getTestDocument("protectedFile.xlsx")) {
             parser.parse(input, handler, metadata, context);
 
             assertEquals(
@@ -561,8 +530,6 @@
 
             String content = handler.toString();
             assertContains("Office", content);
-        } finally {
-            input.close();
         }
     }
 
@@ -577,12 +544,9 @@
         ContentHandler handler = new BodyContentHandler();
         ParseContext context = new ParseContext();
 
-        InputStream input = getTestDocument("NullHeader.docx");
-        try {
+        try (InputStream input = getTestDocument("NullHeader.docx")) {
             parser.parse(input, handler, metadata, context);
             assertEquals("Should have found some text", false, handler.toString().isEmpty());
-        } finally {
-            input.close();
         }
     }
 
@@ -591,12 +555,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = OOXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testWORD_various.docx");
-        try {
+        try (InputStream stream = OOXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testWORD_various.docx")) {
             new AutoDetectParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -663,12 +624,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = OOXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testPPT_various.pptx");
-        try {
+        try (InputStream stream = OOXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testPPT_various.pptx")) {
             new AutoDetectParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -735,12 +693,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = OOXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testPPT_masterFooter.pptx");
-        try {
+        try (InputStream stream = OOXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testPPT_masterFooter.pptx")) {
             new AutoDetectParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -756,12 +711,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = OOXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testPPT_masterText.pptx");
-        try {
+        try (InputStream stream = OOXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testPPT_masterText.pptx")) {
             new AutoDetectParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -773,12 +725,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = OOXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testPPT_masterText2.pptx");
-        try {
+        try (InputStream stream = OOXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testPPT_masterText2.pptx")) {
             new AutoDetectParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -790,12 +739,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = OOXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testWordArt.pptx");
-        try {
+        try (InputStream stream = OOXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testWordArt.pptx")) {
             new AutoDetectParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
         String content = handler.toString();
         assertContains("Here is some red word Art", content);
@@ -806,17 +752,14 @@
      */
     @Test
     public void testExcelCustomProperties() throws Exception {
-        InputStream input = OOXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testEXCEL_custom_props.xlsx");
         Metadata metadata = new Metadata();
 
-        try {
+        try (InputStream input = OOXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testEXCEL_custom_props.xlsx")) {
             ContentHandler handler = new BodyContentHandler(-1);
             ParseContext context = new ParseContext();
             context.set(Locale.class, Locale.US);
             new OOXMLParser().parse(input, handler, metadata, context);
-        } finally {
-            input.close();
         }
 
         assertEquals(
@@ -840,17 +783,14 @@
 
     @Test
     public void testWordCustomProperties() throws Exception {
-        InputStream input = OOXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testWORD_custom_props.docx");
         Metadata metadata = new Metadata();
 
-        try {
+        try (InputStream input = OOXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testWORD_custom_props.docx")) {
             ContentHandler handler = new BodyContentHandler(-1);
             ParseContext context = new ParseContext();
             context.set(Locale.class, Locale.US);
             new OOXMLParser().parse(input, handler, metadata, context);
-        } finally {
-            input.close();
         }
 
         assertEquals(
@@ -884,17 +824,14 @@
 
     @Test
     public void testPowerPointCustomProperties() throws Exception {
-        InputStream input = OOXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testPPT_custom_props.pptx");
         Metadata metadata = new Metadata();
 
-        try {
+        try (InputStream input = OOXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testPPT_custom_props.pptx")) {
             ContentHandler handler = new BodyContentHandler(-1);
             ParseContext context = new ParseContext();
             context.set(Locale.class, Locale.US);
             new OOXMLParser().parse(input, handler, metadata, context);
-        } finally {
-            input.close();
         }
 
         assertEquals(
@@ -920,8 +857,6 @@
     // TIKA-989:
     @Test
     public void testEmbeddedPDF() throws Exception {
-        InputStream input = OOXMLParserTest.class.getResourceAsStream(
-                "/test-documents/testWORD_embedded_pdf.docx");
         Metadata metadata = new Metadata();
         StringWriter sw = new StringWriter();
         SAXTransformerFactory factory = (SAXTransformerFactory)
@@ -931,10 +866,9 @@
         handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "no");
         handler.setResult(new StreamResult(sw));
 
-        try {
+        try (InputStream input = OOXMLParserTest.class.getResourceAsStream(
+                "/test-documents/testWORD_embedded_pdf.docx")) {
             new OOXMLParser().parse(input, handler, metadata, new ParseContext());
-        } finally {
-            input.close();
         }
         String xml = sw.toString();
         int i = xml.indexOf("Here is the pdf file:");
@@ -986,12 +920,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = WordParserTest.class.getResourceAsStream(
-                "/test-documents/testWORD_no_format.docx");
-        try {
+        try (InputStream stream = WordParserTest.class.getResourceAsStream(
+                "/test-documents/testWORD_no_format.docx")) {
             new OOXMLParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -1027,8 +958,7 @@
         ContentHandler handler = new BodyContentHandler();
         ParseContext context = new ParseContext();
 
-        InputStream input = getTestDocument("testWORD_missing_text.docx");
-        try {
+        try (InputStream input = getTestDocument("testWORD_missing_text.docx")) {
             parser.parse(input, handler, metadata, context);
             assertEquals(
                     "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
@@ -1036,8 +966,6 @@
             assertContains("BigCompany", handler.toString());
             assertContains("Seasoned", handler.toString());
             assertContains("Rich_text_in_cell", handler.toString());
-        } finally {
-            input.close();
         }
     }
 
@@ -1148,30 +1076,22 @@
         passwordContext.set(org.apache.tika.parser.PasswordProvider.class, passwordProvider);
 
         for (Map.Entry<String, String> e : tests.entrySet()) {
-            InputStream is = null;
-            try {
-                is = getTestDocument(e.getKey());
+            try (InputStream is = getTestDocument(e.getKey())) {
                 ContentHandler handler = new BodyContentHandler();
                 parser.parse(is, handler, m, passwordContext);
                 assertContains(e.getValue(), handler.toString());
-            } finally {
-                is.close();
             }
         }
 
         ParseContext context = new ParseContext();
         //now try with no password
         for (Map.Entry<String, String> e : tests.entrySet()) {
-            InputStream is = null;
             boolean exc = false;
-            try {
-                is = getTestDocument(e.getKey());
+            try (InputStream is = getTestDocument(e.getKey())) {
                 ContentHandler handler = new BodyContentHandler();
                 parser.parse(is, handler, m, context);
             } catch (EncryptedDocumentException ex) {
                 exc = true;
-            } finally {
-                is.close();
             }
             assertTrue(exc);
         }
Index: tika-parsers/src/test/java/org/apache/tika/parser/pkg/RarParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/pkg/RarParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/pkg/RarParserTest.java	(revision )
@@ -41,12 +41,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = RarParserTest.class.getResourceAsStream(
-                "/test-documents/test-documents.rar");
-        try {
+        try (InputStream stream = RarParserTest.class.getResourceAsStream(
+                "/test-documents/test-documents.rar")) {
             parser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals("application/x-rar-compressed", metadata.get(Metadata.CONTENT_TYPE));
@@ -81,13 +78,10 @@
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
 
-       InputStream stream = RarParserTest.class.getResourceAsStream(
-               "/test-documents/test-documents.rar");
-       try {
+        try (InputStream stream = RarParserTest.class.getResourceAsStream(
+                "/test-documents/test-documents.rar")) {
-           parser.parse(stream, handler, metadata, trackingContext);
+            parser.parse(stream, handler, metadata, trackingContext);
-       } finally {
-           stream.close();
-       }
+        }
        
        // Should have found all 9 documents, but not the directory
        assertEquals(9, tracker.filenames.size());
\ No newline at end of file
Index: tika-parsers/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java	(revision )
@@ -55,28 +55,24 @@
         assertTypeByNameAndData(dataFile, name, type, null);
     }
     private void assertTypeByNameAndData(String dataFile, String name, String typeFromDetector, String typeFromMagic) throws Exception {
-       TikaInputStream stream = TikaInputStream.get(
-               TestContainerAwareDetector.class.getResource(
-                       "/test-documents/" + dataFile));
-       try {
+        try (TikaInputStream stream = TikaInputStream.get(
+                TestContainerAwareDetector.class.getResource("/test-documents/" + dataFile))) {
-           Metadata m = new Metadata();
-           if (name != null)
-              m.add(Metadata.RESOURCE_NAME_KEY, name);
-           
-           // Mime Magic version is likely to be less precise
-           if (typeFromMagic != null) {
-               assertEquals(
-                       MediaType.parse(typeFromMagic),
-                       mimeTypes.detect(stream, m));
-           }
-           
-           // All being well, the detector should get it perfect
-           assertEquals(
-                   MediaType.parse(typeFromDetector),
-                   detector.detect(stream, m));
+            Metadata m = new Metadata();
+            if (name != null)
+                m.add(Metadata.RESOURCE_NAME_KEY, name);
+
+            // Mime Magic version is likely to be less precise
+            if (typeFromMagic != null) {
+                assertEquals(
+                        MediaType.parse(typeFromMagic),
+                        mimeTypes.detect(stream, m));
+            }
+
+            // All being well, the detector should get it perfect
+            assertEquals(
+                    MediaType.parse(typeFromDetector),
+                    detector.detect(stream, m));
-       } finally {
-           stream.close();
-       }
+        }
     }
 
     @Test
@@ -165,17 +161,13 @@
 
     @Test
     public void testOpenContainer() throws Exception {
-        TikaInputStream stream = TikaInputStream.get(
-                TestContainerAwareDetector.class.getResource(
-                        "/test-documents/testPPT.ppt"));
-        try {
+        try (TikaInputStream stream = TikaInputStream.get(
+                TestContainerAwareDetector.class.getResource("/test-documents/testPPT.ppt"))) {
             assertNull(stream.getOpenContainer());
             assertEquals(
                     MediaType.parse("application/vnd.ms-powerpoint"),
                     detector.detect(stream, new Metadata()));
             assertTrue(stream.getOpenContainer() instanceof NPOIFSFileSystem);
-        } finally {
-            stream.close();
         }
     }
 
@@ -306,13 +298,9 @@
     private void assertRemovalTempfiles(String fileName) throws Exception {
         int numberOfTempFiles = countTemporaryFiles();
 
-        TikaInputStream stream = TikaInputStream.get(
-                TestContainerAwareDetector.class.getResource(
-                        "/test-documents/" + fileName));
-        try {
+        try (TikaInputStream stream = TikaInputStream.get(
+                TestContainerAwareDetector.class.getResource("/test-documents/" + fileName))) {
             detector.detect(stream, new Metadata());
-        } finally {
-            stream.close();
         }
 
         assertEquals(numberOfTempFiles, countTemporaryFiles());
@@ -354,10 +342,8 @@
 
     private TikaInputStream getTruncatedFile(String name, int n)
             throws IOException {
-        InputStream input =
-            TestContainerAwareDetector.class.getResourceAsStream(
-                    "/test-documents/" + name);
-        try {
+        try (InputStream input = TestContainerAwareDetector.class.getResourceAsStream(
+                "/test-documents/" + name)) {
             byte[] bytes = new byte[n];
             int m = 0;
             while (m < bytes.length) {
@@ -369,8 +355,6 @@
                 }
             }
             return TikaInputStream.get(bytes);
-        } finally {
-            input.close();
         }
     }
 
@@ -379,50 +363,37 @@
         // First up a truncated OOXML (zip) file
        
         // With only the data supplied, the best we can do is the container
-        TikaInputStream xlsx = getTruncatedFile("testEXCEL.xlsx", 300);
         Metadata m = new Metadata();
-        try {
+        try (TikaInputStream xlsx = getTruncatedFile("testEXCEL.xlsx", 300)) {
             assertEquals(
                     MediaType.application("x-tika-ooxml"),
                     detector.detect(xlsx, m));
-        } finally {
-            xlsx.close();
         }
         
         // With truncated data + filename, we can use the filename to specialise
-        xlsx = getTruncatedFile("testEXCEL.xlsx", 300);
         m = new Metadata();
         m.add(Metadata.RESOURCE_NAME_KEY, "testEXCEL.xlsx");
-        try {
+        try (TikaInputStream xlsx = getTruncatedFile("testEXCEL.xlsx", 300)) {
             assertEquals(
                     MediaType.application("vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
                     detector.detect(xlsx, m));
-        } finally {
-            xlsx.close();
         }
-        
+
-
         // Now a truncated OLE2 file 
-        TikaInputStream xls = getTruncatedFile("testEXCEL.xls", 400);
         m = new Metadata();
-        try {
+        try (TikaInputStream xls = getTruncatedFile("testEXCEL.xls", 400)) {
             assertEquals(
                     MediaType.application("x-tika-msoffice"),
                     detector.detect(xls, m));
-        } finally {
-            xls.close();
         }
         
         // Finally a truncated OLE2 file, with a filename available
-        xls = getTruncatedFile("testEXCEL.xls", 400);
         m = new Metadata();
         m.add(Metadata.RESOURCE_NAME_KEY, "testEXCEL.xls");
-        try {
+        try (TikaInputStream xls = getTruncatedFile("testEXCEL.xls", 400)) {
             assertEquals(
                     MediaType.application("vnd.ms-excel"),
                     detector.detect(xls, m));
-        } finally {
-            xls.close();
         }
    }
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/feed/FeedParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/feed/FeedParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/feed/FeedParserTest.java	(revision )
@@ -31,9 +31,8 @@
 public class FeedParserTest {
     @Test
     public void testRSSParser() throws Exception {
-        InputStream input = FeedParserTest.class
-                .getResourceAsStream("/test-documents/rsstest.rss");
-        try {
+        try (InputStream input = FeedParserTest.class.getResourceAsStream(
+                "/test-documents/rsstest.rss")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             ParseContext context = new ParseContext();
@@ -48,18 +47,14 @@
             assertEquals("TestChannel", metadata.get(TikaCoreProperties.TITLE));
 
             // TODO find a way of testing the paragraphs and anchors
-
-        } finally {
-            input.close();
         }
     }
 
 
     @Test
     public void testAtomParser() throws Exception {
-        InputStream input = FeedParserTest.class
-                .getResourceAsStream("/test-documents/testATOM.atom");
-        try {
+        try (InputStream input = FeedParserTest.class.getResourceAsStream(
+                "/test-documents/testATOM.atom")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             ParseContext context = new ParseContext();
@@ -74,8 +69,6 @@
             assertEquals("Test Atom Feed", metadata.get(TikaCoreProperties.TITLE));
 
             // TODO Check some more
-        } finally {
-            input.close();
         }
     }
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/microsoft/OutlookParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/microsoft/OutlookParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/microsoft/OutlookParserTest.java	(revision )
@@ -50,12 +50,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = OutlookParserTest.class.getResourceAsStream(
-                "/test-documents/test-outlook.msg");
-        try {
+        try (InputStream stream = OutlookParserTest.class.getResourceAsStream(
+                "/test-documents/test-outlook.msg")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertEquals(
@@ -97,12 +94,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = OutlookParserTest.class.getResourceAsStream(
-                "/test-documents/testMSG.msg");
-        try {
+        try (InputStream stream = OutlookParserTest.class.getResourceAsStream(
+                "/test-documents/testMSG.msg")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertEquals(
@@ -127,12 +121,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = OutlookParserTest.class.getResourceAsStream(
-                "/test-documents/test-outlook2003.msg");
-        try {
+        try (InputStream stream = OutlookParserTest.class.getResourceAsStream(
+                "/test-documents/test-outlook2003.msg")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertEquals(
@@ -162,12 +153,9 @@
         handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes");
         handler.setResult(new StreamResult(sw));
 
-        InputStream stream = OutlookParserTest.class.getResourceAsStream(
-                "/test-documents/testMSG_chinese.msg");
-        try {
+        try (InputStream stream = OutlookParserTest.class.getResourceAsStream(
+                "/test-documents/testMSG_chinese.msg")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         // As the HTML version should have been processed, ensure
@@ -201,12 +189,9 @@
         handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes");
         handler.setResult(new StreamResult(sw));
 
-        InputStream stream = OutlookParserTest.class.getResourceAsStream(
-                "/test-documents/testMSG_forwarded.msg");
-        try {
+        try (InputStream stream = OutlookParserTest.class.getResourceAsStream(
+                "/test-documents/testMSG_forwarded.msg")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         // Make sure we don't have nested docs
@@ -229,12 +214,9 @@
         handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes");
         handler.setResult(new StreamResult(sw));
 
-        InputStream stream = OutlookParserTest.class.getResourceAsStream(
-                "/test-documents/test-outlook2003.msg");
-        try {
+        try (InputStream stream = OutlookParserTest.class.getResourceAsStream(
+                "/test-documents/test-outlook2003.msg")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         // As the HTML version should have been processed, ensure
Index: tika-parsers/src/main/java/org/apache/tika/parser/pkg/RarParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/pkg/RarParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/pkg/RarParser.java	(revision )
@@ -65,9 +65,8 @@
                 EmbeddedDocumentExtractor.class,
                 new ParsingEmbeddedDocumentExtractor(context));
 
-        TemporaryResources tmp = new TemporaryResources();
         Archive rar = null;
-        try {
+        try (TemporaryResources tmp = new TemporaryResources()) {
             TikaInputStream tis = TikaInputStream.get(stream, tmp);
             rar = new Archive(tis.getFile());
 
@@ -81,12 +80,9 @@
             FileHeader header = rar.nextFileHeader();
             while (header != null && !Thread.currentThread().isInterrupted()) {
                 if (!header.isDirectory()) {
-                    InputStream subFile = null;
-                    try {
-                        subFile = rar.getInputStream(header);
-
+                    try (InputStream subFile = rar.getInputStream(header)) {
                         Metadata entrydata = PackageParser.handleEntryMetadata(
-                                "".equals(header.getFileNameW())?header.getFileNameString():header.getFileNameW(),
+                                "".equals(header.getFileNameW()) ? header.getFileNameString() : header.getFileNameW(),
                                 header.getCTime(), header.getMTime(),
                                 header.getFullUnpackSize(),
                                 xhtml
@@ -95,9 +91,6 @@
                         if (extractor.shouldParseEmbedded(entrydata)) {
                             extractor.parseEmbedded(subFile, handler, entrydata, true);
                         }
-                    } finally {
-                        if (subFile != null)
-                            subFile.close();
                     }
                 }
 
@@ -109,7 +102,7 @@
         } finally {
             if (rar != null)
                 rar.close();
-            tmp.close();
+
         }
 
         xhtml.endDocument();
Index: tika-parsers/src/test/java/org/apache/tika/parser/microsoft/OldExcelParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/microsoft/OldExcelParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/microsoft/OldExcelParserTest.java	(revision )
@@ -40,14 +40,11 @@
 
     @Test
     public void testDetection() throws Exception {
-        TikaInputStream stream = getTestFile(file);
         Detector detector = new DefaultDetector();
-        try {
+        try (TikaInputStream stream = getTestFile(file)) {
             assertEquals(
                     MediaType.application("vnd.ms-excel.sheet.4"),
                     detector.detect(stream, new Metadata()));
-        } finally {
-            stream.close();
         }
     }
 
@@ -79,11 +76,8 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        TikaInputStream stream = getTestFile(file);
-        try {
+        try (TikaInputStream stream = getTestFile(file)) {
             new OldExcelParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String text = handler.toString();
Index: tika-parsers/src/test/java/org/apache/tika/parser/microsoft/AbstractPOIContainerExtractionTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/microsoft/AbstractPOIContainerExtractionTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/microsoft/AbstractPOIContainerExtractionTest.java	(revision )
@@ -57,8 +57,7 @@
     }
 
     protected TrackingHandler process(String filename, ContainerExtractor extractor, boolean recurse) throws Exception {
-        TikaInputStream stream = getTestFile(filename);
-        try {
+        try (TikaInputStream stream = getTestFile(filename)) {
             assertEquals(true, extractor.isSupported(stream));
 
             // Process it
@@ -71,8 +70,6 @@
 
             // So they can check what happened
             return handler;
-        } finally {
-            stream.close();
         }
     }
 }
Index: tika-parsers/src/main/java/org/apache/tika/parser/image/ImageParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/image/ImageParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/image/ImageParser.java	(revision )
@@ -163,9 +163,8 @@
                 if (iterator.hasNext()) {
                     ImageReader reader = iterator.next();
                     try {
-                        ImageInputStream imageStream = ImageIO.createImageInputStream(
-                                new CloseShieldInputStream(stream));
-                        try {
+                        try (ImageInputStream imageStream = ImageIO.createImageInputStream(
+                                new CloseShieldInputStream(stream))) {
                             reader.setInput(imageStream);
 
                             metadata.set(Metadata.IMAGE_WIDTH, Integer.toString(reader.getWidth(0)));
@@ -174,8 +173,6 @@
                             metadata.set("width", Integer.toString(reader.getWidth(0)));
 
                             loadMetadata(reader.getImageMetadata(0), metadata);
-                        } finally {
-                            imageStream.close();
                         }
                     } finally {
                         reader.dispose();
Index: tika-parsers/src/test/java/org/apache/tika/parser/microsoft/WordParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/microsoft/WordParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/microsoft/WordParserTest.java	(revision )
@@ -41,9 +41,8 @@
 
     @Test
     public void testWordParser() throws Exception {
-        InputStream input = WordParserTest.class.getResourceAsStream(
-                "/test-documents/testWORD.doc");
-        try {
+        try (InputStream input = WordParserTest.class.getResourceAsStream(
+                "/test-documents/testWORD.doc")) {
             ContentHandler handler = new BodyContentHandler();
             Metadata metadata = new Metadata();
             new OfficeParser().parse(input, handler, metadata, new ParseContext());
@@ -55,23 +54,18 @@
             assertEquals("Keith Bennett", metadata.get(TikaCoreProperties.CREATOR));
             assertEquals("Keith Bennett", metadata.get(Metadata.AUTHOR));
             assertContains("Sample Word Document", handler.toString());
-        } finally {
-            input.close();
         }
     }
 
     @Test
     public void testWordWithWAV() throws Exception {
-        InputStream input = WordParserTest.class.getResourceAsStream(
-                "/test-documents/Doc1_ole.doc");
-        try {
+        try (InputStream input = WordParserTest.class.getResourceAsStream(
+                "/test-documents/Doc1_ole.doc")) {
             ContentHandler handler = new BodyContentHandler();
             Metadata metadata = new Metadata();
             new OfficeParser().parse(input, handler, metadata, new ParseContext());
 
             assertContains("MSj00974840000[1].wav", handler.toString());
-        } finally {
-            input.close();
         }
     }
 
@@ -178,9 +172,8 @@
 
     @Test
     public void testWord6Parser() throws Exception {
-        InputStream input = WordParserTest.class.getResourceAsStream(
-                "/test-documents/testWORD6.doc");
-        try {
+        try (InputStream input = WordParserTest.class.getResourceAsStream(
+                "/test-documents/testWORD6.doc")) {
             ContentHandler handler = new BodyContentHandler();
             Metadata metadata = new Metadata();
             new OfficeParser().parse(input, handler, metadata, new ParseContext());
@@ -194,8 +187,6 @@
             assertEquals("Nevin Nollop", metadata.get(TikaCoreProperties.CREATOR));
             assertEquals("Nevin Nollop", metadata.get(Metadata.AUTHOR));
             assertContains("The quick brown fox jumps over the lazy dog", handler.toString());
-        } finally {
-            input.close();
         }
     }
 
@@ -204,12 +195,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = WordParserTest.class.getResourceAsStream(
-                "/test-documents/testWORD_various.doc");
-        try {
+        try (InputStream stream = WordParserTest.class.getResourceAsStream(
+                "/test-documents/testWORD_various.doc")) {
             new OfficeParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -280,12 +268,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = WordParserTest.class.getResourceAsStream(
-                "/test-documents/testWORD_no_format.doc");
-        try {
+        try (InputStream stream = WordParserTest.class.getResourceAsStream(
+                "/test-documents/testWORD_no_format.doc")) {
             new OfficeParser().parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -297,17 +282,14 @@
      */
     @Test
     public void testCustomProperties() throws Exception {
-        InputStream input = WordParserTest.class.getResourceAsStream(
-                "/test-documents/testWORD_custom_props.doc");
         Metadata metadata = new Metadata();
 
-        try {
+        try (InputStream input = WordParserTest.class.getResourceAsStream(
+                "/test-documents/testWORD_custom_props.doc")) {
             ContentHandler handler = new BodyContentHandler(-1);
             ParseContext context = new ParseContext();
             context.set(Locale.class, Locale.US);
             new OfficeParser().parse(input, handler, metadata, context);
-        } finally {
-            input.close();
         }
 
         assertEquals("application/msword", metadata.get(Metadata.CONTENT_TYPE));
Index: tika-parsers/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/microsoft/HSLFExtractor.java	(revision )
@@ -301,9 +301,7 @@
                     xhtml.startElement("div", attributes);
                     xhtml.endElement("div");
 
-                    TikaInputStream stream =
-                            TikaInputStream.get(data.getData());
-                    try {
+                    try (TikaInputStream stream = TikaInputStream.get(data.getData())) {
                         String mediaType = null;
                         if ("Excel.Chart.8".equals(oleShape.getProgID())) {
                             mediaType = "application/vnd.ms-excel";
@@ -311,8 +309,6 @@
                         handleEmbeddedResource(
                                 stream, objID, objID,
                                 mediaType, xhtml, false);
-                    } finally {
-                        stream.close();
                     }
                 }
             }
Index: tika-core/src/main/java/org/apache/tika/Tika.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/main/java/org/apache/tika/Tika.java	(revision 1696828)
+++ tika-core/src/main/java/org/apache/tika/Tika.java	(revision )
@@ -218,11 +218,8 @@
      */
     public String detect(byte[] prefix, String name) {
         try {
-            InputStream stream = TikaInputStream.get(prefix);
-            try {
+            try (InputStream stream = TikaInputStream.get(prefix)) {
                 return detect(stream, name);
-            } finally {
-                stream.close();
             }
         } catch (IOException e) {
             throw new IllegalStateException("Unexpected IOException", e);
@@ -244,11 +241,8 @@
      */
     public String detect(byte[] prefix) {
         try {
-            InputStream stream = TikaInputStream.get(prefix);
-            try {
+            try (InputStream stream = TikaInputStream.get(prefix)) {
                 return detect(stream);
-            } finally {
-                stream.close();
             }
         } catch (IOException e) {
             throw new IllegalStateException("Unexpected IOException", e);
@@ -284,11 +278,8 @@
      */
     public String detect(URL url) throws IOException {
         Metadata metadata = new Metadata();
-        InputStream stream = TikaInputStream.get(url, metadata);
-        try {
+        try (InputStream stream = TikaInputStream.get(url, metadata)) {
             return detect(stream, metadata);
-        } finally {
-            stream.close();
         }
     }
 
@@ -635,17 +626,12 @@
     public String toString() {
         String version = null;
 
-        try {
-            InputStream stream = Tika.class.getResourceAsStream(
-                    "/META-INF/maven/org.apache.tika/tika-core/pom.properties");
+        try (InputStream stream = Tika.class.getResourceAsStream(
+                "/META-INF/maven/org.apache.tika/tika-core/pom.properties")) {
             if (stream != null) {
-                try {
-                    Properties properties = new Properties();
-                    properties.load(stream);
-                    version = properties.getProperty("version");
+                Properties properties = new Properties();
+                properties.load(stream);
+                version = properties.getProperty("version");
-                } finally {
-                    stream.close();
-                }
             }
         } catch (Exception ignore) {
         }
Index: tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/mime/TestMimeTypes.java	(revision )
@@ -974,15 +974,12 @@
     }
 
     private void assertType(String expected, String filename) throws Exception {
-        InputStream stream = TestMimeTypes.class.getResourceAsStream(
-                "/test-documents/" + filename);
+        try (InputStream stream = TestMimeTypes.class.getResourceAsStream(
+                "/test-documents/" + filename)) {
-        assertNotNull("Test file not found: " + filename, stream);
+            assertNotNull("Test file not found: " + filename, stream);
-        try {
             Metadata metadata = new Metadata();
             metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
             assertEquals(expected, repo.detect(stream, metadata).toString());
-        } finally {
-            stream.close();
         }
     }
 
@@ -995,26 +992,20 @@
 
     private void assertTypeByData(String expected, String filename)
             throws IOException {
-        InputStream stream = TestMimeTypes.class.getResourceAsStream(
-                "/test-documents/" + filename);
+        try (InputStream stream = TestMimeTypes.class.getResourceAsStream(
+                "/test-documents/" + filename)) {
-        assertNotNull("Test file not found: " + filename, stream);
+            assertNotNull("Test file not found: " + filename, stream);
-        try {
             Metadata metadata = new Metadata();
             assertEquals(expected, repo.detect(stream, metadata).toString());
-        } finally {
-            stream.close();
         }
     }
     
     private void assertTypeByData(String expected, byte[] data)
             throws IOException {
-       InputStream stream = new ByteArrayInputStream(data);
-       try {
+        try (InputStream stream = new ByteArrayInputStream(data)) {
-          Metadata metadata = new Metadata();
-          assertEquals(expected, repo.detect(stream, metadata).toString());
+            Metadata metadata = new Metadata();
+            assertEquals(expected, repo.detect(stream, metadata).toString());
-       } finally {
-          stream.close();
-       }
+        }
     }
 
     private void assertTypeDetection(String filename, String type)
@@ -1035,15 +1026,12 @@
     }
 
     private MediaType getTypeByNameAndData(String filename) throws IOException {
-       InputStream stream = TestMimeTypes.class.getResourceAsStream(
-             "/test-documents/" + filename);
+        try (InputStream stream = TestMimeTypes.class.getResourceAsStream(
+                "/test-documents/" + filename)) {
-       assertNotNull("Test document not found: " + filename, stream);
+            assertNotNull("Test document not found: " + filename, stream);
-       try {
-          Metadata metadata = new Metadata();
-          metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
-          return repo.detect(stream, metadata);
+            Metadata metadata = new Metadata();
+            metadata.set(Metadata.RESOURCE_NAME_KEY, filename);
+            return repo.detect(stream, metadata);
-       } finally {
-          stream.close();
-       }
+        }
     }
 }
Index: tika-parsers/src/test/java/org/apache/tika/parser/hdf/HDFParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/hdf/HDFParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/hdf/HDFParserTest.java	(revision )
@@ -57,12 +57,8 @@
          * ftp://acdisc.gsfc.nasa.gov/data/s4pa///Aura_MLS_Level2/ML2O3.002//2009
          * /MLS-Aura_L2GP-O3_v02-23-c01_2009d122.he5
          */
-        InputStream stream = HDFParser.class
-                .getResourceAsStream("/test-documents/test.he5");
-        try {
+        try (InputStream stream = HDFParser.class.getResourceAsStream("/test-documents/test.he5")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertNotNull(metadata);
@@ -83,13 +79,9 @@
        * 
        * http://www.hdfgroup.org/training/hdf4_chunking/Chunkit/bin/input54kmdata.hdf
        */
-      InputStream stream = HDFParser.class
-              .getResourceAsStream("/test-documents/test.hdf");
-      try {
+        try (InputStream stream = HDFParser.class.getResourceAsStream("/test-documents/test.hdf")) {
-          parser.parse(stream, handler, metadata, new ParseContext());
+            parser.parse(stream, handler, metadata, new ParseContext());
-      } finally {
-          stream.close();
-      }
+        }
 
       assertNotNull(metadata);
       assertEquals("Direct read of HDF4 file through CDM library", metadata.get("_History"));
Index: tika-server/src/main/java/org/apache/tika/server/resource/UnpackerResource.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-server/src/main/java/org/apache/tika/server/resource/UnpackerResource.java	(revision 1696828)
+++ tika-server/src/main/java/org/apache/tika/server/resource/UnpackerResource.java	(revision )
@@ -251,11 +251,8 @@
                     copy((DirectoryEntry) entry, newDir);
                 } else {
                     // Copy entry
-                    InputStream contents = new DocumentInputStream((DocumentEntry) entry);
-                    try {
+                    try (InputStream contents = new DocumentInputStream((DocumentEntry) entry)) {
                         destDir.createDocument(entry.getName(), contents);
-                    } finally {
-                        contents.close();
                     }
                 }
             }
Index: tika-parsers/src/main/java/org/apache/tika/parser/strings/StringsParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/strings/StringsParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/strings/StringsParser.java	(revision )
@@ -264,12 +264,9 @@
 			throws SAXException, IOException {
 
 		char[] buffer = new char[1024];
-		BufferedReader reader = null;
 		int totalBytes = 0;
 
-		try {
-			reader = new BufferedReader(new InputStreamReader(stream, UTF_8));
-
+		try (BufferedReader reader = new BufferedReader(new InputStreamReader(stream, UTF_8))) {
 			int n = 0;
 			while ((n = reader.read(buffer)) != -1) {
 				if (n > 0) {
@@ -278,8 +275,6 @@
 				totalBytes += n;
 			}
 
-		} finally {
-			reader.close();
 		}
 
 		return totalBytes;
@@ -317,18 +312,13 @@
 
 		InputStream out = process.getInputStream();
 
-		BufferedReader reader = null;
 		String fileOutput = null;
 
-		try {
-			reader = new BufferedReader(new InputStreamReader(out, UTF_8));
+		try (BufferedReader reader = new BufferedReader(new InputStreamReader(out, UTF_8))) {
 			fileOutput = reader.readLine();
-
 		} catch (IOException ioe) {
 			// file output not available!
 			fileOutput = "";
-		} finally {
-			reader.close();
 		}
 
 		return fileOutput;
Index: tika-parsers/src/test/java/org/apache/tika/TestParsers.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/TestParsers.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/TestParsers.java	(revision )
@@ -52,12 +52,8 @@
         File file = getResourceAsFile("/test-documents/testWORD.doc");
         Parser parser = tika.getParser();
         Metadata metadata = new Metadata();
-        InputStream stream = new FileInputStream(file);
-        try {
-            parser.parse(
-                    stream, new DefaultHandler(), metadata, new ParseContext());
-        } finally {
-            stream.close();
+        try (InputStream stream = new FileInputStream(file)) {
+            parser.parse(stream, new DefaultHandler(), metadata, new ParseContext());
         }
         assertEquals("Sample Word Document", metadata.get(TikaCoreProperties.TITLE));
     }
@@ -71,12 +67,8 @@
                 .contains(expected));
         Parser parser = tika.getParser();
         Metadata metadata = new Metadata();
-        InputStream stream = new FileInputStream(file);
-        try {
-            parser.parse(
-                    stream, new DefaultHandler(), metadata, new ParseContext());
-        } finally {
-            stream.close();
+        try (InputStream stream = new FileInputStream(file)) {
+            parser.parse(stream, new DefaultHandler(), metadata, new ParseContext());
         }
         assertEquals("Simple Excel document", metadata.get(TikaCoreProperties.TITLE));
     }
Index: tika-parsers/src/test/java/org/apache/tika/parser/envi/EnviHeaderParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/envi/EnviHeaderParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/envi/EnviHeaderParserTest.java	(revision )
@@ -42,13 +42,10 @@
         ToXMLContentHandler handler = new ToXMLContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = EnviHeaderParser.class
-                .getResourceAsStream("/test-documents/envi_test_header.hdr");
+        try (InputStream stream = EnviHeaderParser.class.getResourceAsStream(
+                "/test-documents/envi_test_header.hdr")) {
-        assertNotNull("Test ENVI file not found", stream);
+            assertNotNull("Test ENVI file not found", stream);
-        try {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         // Check content of test file
Index: tika-parsers/src/test/java/org/apache/tika/parser/pkg/GzipParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/pkg/GzipParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/pkg/GzipParserTest.java	(revision )
@@ -39,12 +39,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = GzipParserTest.class.getResourceAsStream(
-                "/test-documents/test-documents.tgz");
-        try {
+        try (InputStream stream = GzipParserTest.class.getResourceAsStream(
+                "/test-documents/test-documents.tgz")) {
             parser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals("application/gzip", metadata.get(Metadata.CONTENT_TYPE));
@@ -79,13 +76,10 @@
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
 
-       InputStream stream = ZipParserTest.class.getResourceAsStream(
-               "/test-documents/test-documents.tgz");
-       try {
+        try (InputStream stream = ZipParserTest.class.getResourceAsStream(
+                "/test-documents/test-documents.tgz")) {
-           parser.parse(stream, handler, metadata, trackingContext);
+            parser.parse(stream, handler, metadata, trackingContext);
-       } finally {
-           stream.close();
-       }
+        }
        
        // Should find a single entry, for the (compressed) tar file
        assertEquals(1, tracker.filenames.size());
@@ -106,12 +100,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = GzipParserTest.class.getResourceAsStream(
-                "/test-documents/testSVG.svgz");
-        try {
+        try (InputStream stream = GzipParserTest.class.getResourceAsStream(
+                "/test-documents/testSVG.svgz")) {
             parser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals("application/gzip", metadata.get(Metadata.CONTENT_TYPE));
Index: tika-core/src/test/java/org/apache/tika/io/TikaInputStreamTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/test/java/org/apache/tika/io/TikaInputStreamTest.java	(revision 1696828)
+++ tika-core/src/test/java/org/apache/tika/io/TikaInputStreamTest.java	(revision )
@@ -88,21 +88,15 @@
 
     private File createTempFile(String data) throws IOException {
         File file = File.createTempFile("tika-", ".tmp");
-        OutputStream stream = new FileOutputStream(file);
-        try {
+        try (OutputStream stream = new FileOutputStream(file)) {
             stream.write(data.getBytes(UTF_8));
-        } finally {
-            stream.close();
         }
         return file;
     }
 
     private String readFile(File file) throws IOException {
-        InputStream stream = new FileInputStream(file);
-        try {
+        try (InputStream stream = new FileInputStream(file)) {
             return readStream(stream);
-        } finally {
-            stream.close();
         }
     }
 
Index: tika-core/src/test/java/org/apache/tika/language/LanguageProfilerBuilderTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/test/java/org/apache/tika/language/LanguageProfilerBuilderTest.java	(revision 1696828)
+++ tika-core/src/test/java/org/apache/tika/language/LanguageProfilerBuilderTest.java	(revision )
@@ -47,12 +47,8 @@
 
     @Test
     public void testCreateProfile() throws TikaException, IOException, URISyntaxException {
-        InputStream is =
-                LanguageProfilerBuilderTest.class.getResourceAsStream(corpusName);
-        try {
+        try (InputStream is = LanguageProfilerBuilderTest.class.getResourceAsStream(corpusName)) {
-            ngramProfile = LanguageProfilerBuilder.create(profileName, is , UTF_8.name());
+            ngramProfile = LanguageProfilerBuilder.create(profileName, is, UTF_8.name());
-        } finally {
-            is.close();
         }
 
         File f = new File(profileName + "." + FILE_EXTENSION);
@@ -78,9 +74,7 @@
 
         langProfile = new LanguageProfile();
 
-        InputStream stream = new FileInputStream(new File(profileName + "."
-                + FILE_EXTENSION));
-        try {
+        try (InputStream stream = new FileInputStream(new File(profileName + "." + FILE_EXTENSION))) {
             BufferedReader reader = new BufferedReader(new InputStreamReader(
                     stream, UTF_8));
             String line = reader.readLine();
@@ -94,8 +88,6 @@
                 }
                 line = reader.readLine();
             }
-        } finally {
-            stream.close();
         }
     }
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/epub/EpubParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/epub/EpubParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/epub/EpubParserTest.java	(revision )
@@ -32,9 +32,8 @@
 
     @Test
     public void testXMLParser() throws Exception {
-        InputStream input = EpubParserTest.class.getResourceAsStream(
-                "/test-documents/testEPUB.epub");
-        try {
+        try (InputStream input = EpubParserTest.class.getResourceAsStream(
+                "/test-documents/testEPUB.epub")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new EpubParser().parse(input, handler, metadata, new ParseContext());
@@ -53,8 +52,6 @@
             assertContains("First item", content);
             assertContains("The previous headings were subchapters", content);
             assertContains("Table data", content);
-        } finally {
-            input.close();
         }
     }
 
Index: tika-core/src/main/java/org/apache/tika/language/LanguageIdentifier.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/main/java/org/apache/tika/language/LanguageIdentifier.java	(revision 1696828)
+++ tika-core/src/main/java/org/apache/tika/language/LanguageIdentifier.java	(revision )
@@ -73,9 +73,7 @@
         try {
             LanguageProfile profile = new LanguageProfile();
 
-            InputStream stream =
-                LanguageIdentifier.class.getResourceAsStream(language + PROFILE_SUFFIX);
-            try {
+            try (InputStream stream = LanguageIdentifier.class.getResourceAsStream(language + PROFILE_SUFFIX)) {
                 BufferedReader reader =
                     new BufferedReader(new InputStreamReader(stream, UTF_8));
                 String line = reader.readLine();
@@ -88,8 +86,6 @@
                     }
                     line = reader.readLine();
                 }
-            } finally {
-                stream.close();
             }
 
             addProfile(language, profile);
Index: tika-parsers/src/test/java/org/apache/tika/parser/pkg/ZlibParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/pkg/ZlibParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/pkg/ZlibParserTest.java	(revision )
@@ -41,12 +41,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = ZipParserTest.class.getResourceAsStream(
-                "/test-documents/testTXT.zlib");
-        try {
+        try (InputStream stream = ZipParserTest.class.getResourceAsStream(
+                "/test-documents/testTXT.zlib")) {
             parser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals("application/zlib", metadata.get(Metadata.CONTENT_TYPE));
@@ -66,13 +63,10 @@
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
 
-       InputStream stream = ZipParserTest.class.getResourceAsStream(
-               "/test-documents/testTXT.zlib");
-       try {
+        try (InputStream stream = ZipParserTest.class.getResourceAsStream(
+                "/test-documents/testTXT.zlib")) {
-           parser.parse(stream, handler, metadata, trackingContext);
+            parser.parse(stream, handler, metadata, trackingContext);
-       } finally {
-           stream.close();
-       }
+        }
        
        // Should have found a single text document inside
        assertEquals(1, tracker.filenames.size());
Index: tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java	(revision 1696828)
+++ tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java	(revision )
@@ -467,12 +467,8 @@
             if (serverMode) {
                 new TikaServer(Integer.parseInt(arg)).start();
             } else if (arg.equals("-")) {
-                InputStream stream =
-                    TikaInputStream.get(new CloseShieldInputStream(System.in));
-                try {
+                try (InputStream stream = TikaInputStream.get(new CloseShieldInputStream(System.in))) {
                     type.process(stream, System.out, new Metadata());
-                } finally {
-                    stream.close();
                 }
             } else {
                 URL url;
@@ -486,11 +482,9 @@
                     handleRecursiveJson(url, System.out);
                 } else {
                     Metadata metadata = new Metadata();
-                    InputStream input = TikaInputStream.get(url, metadata);
-                    try {
+                    try (InputStream input = TikaInputStream.get(url, metadata)) {
                         type.process(input, System.out, metadata);
                     } finally {
-                        input.close();
                         System.out.flush();
                     }
                 }
@@ -500,12 +494,9 @@
 
     private void handleRecursiveJson(URL url, OutputStream output) throws IOException, SAXException, TikaException {
         Metadata metadata = new Metadata();
-        InputStream input = TikaInputStream.get(url, metadata);
         RecursiveParserWrapper wrapper = new RecursiveParserWrapper(parser, getContentHandlerFactory(type));
-        try {
+        try (InputStream input = TikaInputStream.get(url, metadata)) {
             wrapper.parse(input, null, metadata, context);
-        } finally {
-            input.close();
         }
         JsonMetadataList.setPrettyPrinting(prettyPrint);
         Writer writer = getOutputWriter(output, encoding);
@@ -1049,11 +1040,7 @@
             }
             System.out.println("Extracting '"+name+"' ("+contentType+") to " + outputFile);
 
-            FileOutputStream os = null;
-
-            try {
-                os = new FileOutputStream(outputFile);
-
+            try (FileOutputStream os = new FileOutputStream(outputFile)) {
                 if (inputStream instanceof TikaInputStream) {
                     TikaInputStream tin = (TikaInputStream) inputStream;
 
@@ -1079,12 +1066,8 @@
                 );
                 System.err.println(msg);
                 logger.warn(msg, e);
-            } finally {
-                if (os != null) {
-                    os.close();
-                }
-            }
+            }
+        }
-        }
 
         protected void copy(DirectoryEntry sourceDir, DirectoryEntry destDir)
                 throws IOException {
@@ -1095,11 +1078,8 @@
                     copy((DirectoryEntry) entry, newDir);
                 } else {
                     // Copy entry
-                    InputStream contents = new DocumentInputStream((DocumentEntry) entry);
-                    try {
+                    try (InputStream contents = new DocumentInputStream((DocumentEntry) entry)) {
                         destDir.createDocument(entry.getName(), contents);
-                    } finally {
-                        contents.close();
                     }
                 }
             }
Index: tika-example/src/main/java/org/apache/tika/example/ParsingExample.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-example/src/main/java/org/apache/tika/example/ParsingExample.java	(revision 1696828)
+++ tika-example/src/main/java/org/apache/tika/example/ParsingExample.java	(revision )
@@ -51,12 +51,9 @@
      * @return The content of a file.
      */
     public String parseToStringExample() throws IOException, SAXException, TikaException {
-        InputStream stream = ParsingExample.class.getResourceAsStream("test.doc");
         Tika tika = new Tika();
-        try {
+        try (InputStream stream = ParsingExample.class.getResourceAsStream("test.doc")) {
             return tika.parseToString(stream);
-        } finally {
-            stream.close();
         }
     }
 
@@ -85,15 +82,12 @@
      * @return The content of a file.
      */
     public String parseExample() throws IOException, SAXException, TikaException {
-        InputStream stream = ParsingExample.class.getResourceAsStream("test.doc");
         AutoDetectParser parser = new AutoDetectParser();
         BodyContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
-        try {
+        try (InputStream stream = ParsingExample.class.getResourceAsStream("test.doc")) {
             parser.parse(stream, handler, metadata);
             return handler.toString();
-        } finally {
-            stream.close();
         }
     }
 
@@ -105,15 +99,12 @@
      * @return The content of a file.
      */
     public String parseNoEmbeddedExample() throws IOException, SAXException, TikaException {
-        InputStream stream = ParsingExample.class.getResourceAsStream("test_recursive_embedded.docx");
         AutoDetectParser parser = new AutoDetectParser();
         BodyContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
-        try {
+        try (InputStream stream = ParsingExample.class.getResourceAsStream("test_recursive_embedded.docx")) {
             parser.parse(stream, handler, metadata, new ParseContext());
             return handler.toString();
-        } finally {
-            stream.close();
         }
     }
 
@@ -128,19 +119,15 @@
      * @throws TikaException
      */
     public String parseEmbeddedExample() throws IOException, SAXException, TikaException {
-        InputStream stream = ParsingExample.class.getResourceAsStream("test_recursive_embedded.docx");
         AutoDetectParser parser = new AutoDetectParser();
         BodyContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
         ParseContext context = new ParseContext();
         context.set(Parser.class, parser);
-        try {
+        try (InputStream stream = ParsingExample.class.getResourceAsStream("test_recursive_embedded.docx")) {
             parser.parse(stream, handler, metadata, context);
             return handler.toString();
-        } finally {
-            stream.close();
         }
-
     }
 
     /**
@@ -173,15 +160,12 @@
                 BasicContentHandlerFactory.HANDLER_TYPE.HTML, -1);
 
         RecursiveParserWrapper wrapper = new RecursiveParserWrapper(p, factory);
-        InputStream stream = ParsingExample.class.getResourceAsStream("test_recursive_embedded.docx");
         Metadata metadata = new Metadata();
         metadata.set(Metadata.RESOURCE_NAME_KEY, "test_recursive_embedded.docx");
         ParseContext context = new ParseContext();
 
-        try {
+        try (InputStream stream = ParsingExample.class.getResourceAsStream("test_recursive_embedded.docx")) {
             wrapper.parse(stream, new DefaultHandler(), metadata, context);
-        } finally {
-            stream.close();
         }
         return wrapper.getMetadata();
     }
Index: tika-parsers/src/test/java/org/apache/tika/parser/chm/TestChmExtraction.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/chm/TestChmExtraction.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/chm/TestChmExtraction.java	(revision )
@@ -85,12 +85,8 @@
     @Test
     public void testExtractChmEntries() throws TikaException, IOException{
         for (String fileName : files) {
-            InputStream stream =
-                    TestChmExtraction.class.getResourceAsStream(fileName);
-            try {
+            try (InputStream stream = TestChmExtraction.class.getResourceAsStream(fileName)) {
                 testExtractChmEntry(stream);
-            } finally {
-                stream.close();
             }
         }
     }
Index: tika-parsers/src/test/java/org/apache/tika/parser/mbox/MboxParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/mbox/MboxParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/mbox/MboxParserTest.java	(revision )
@@ -59,12 +59,9 @@
     public void testSimple() throws Exception {
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
-        InputStream stream = getStream("/test-documents/simple.mbox");
 
-        try {
+        try (InputStream stream = getStream("/test-documents/simple.mbox")) {
             mboxParser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         String content = handler.toString();
@@ -88,12 +85,9 @@
     public void testHeaders() throws Exception {
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
-        InputStream stream = getStream("/test-documents/headers.mbox");
 
-        try {
+        try (InputStream stream = getStream("/test-documents/headers.mbox")) {
             mboxParser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertContains("Test content", handler.toString());
@@ -114,12 +108,9 @@
     public void testMultilineHeader() throws Exception {
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
-        InputStream stream = getStream("/test-documents/multiline.mbox");
 
-        try {
+        try (InputStream stream = getStream("/test-documents/multiline.mbox")) {
             mboxParser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals("Nb. Of mails", 1, mboxParser.getTrackingMetadata().size());
@@ -132,12 +123,9 @@
     public void testQuoted() throws Exception {
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
-        InputStream stream = getStream("/test-documents/quoted.mbox");
 
-        try {
+        try (InputStream stream = getStream("/test-documents/quoted.mbox")) {
             mboxParser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertContains("Test content", handler.toString());
@@ -148,12 +136,9 @@
     public void testComplex() throws Exception {
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
-        InputStream stream = getStream("/test-documents/complex.mbox");
 
-        try {
+        try (InputStream stream = getStream("/test-documents/complex.mbox")) {
             mboxParser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals("Nb. Of mails", 3, mboxParser.getTrackingMetadata().size());
Index: tika-parsers/src/test/java/org/apache/tika/parser/pkg/TarParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/pkg/TarParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/pkg/TarParserTest.java	(revision )
@@ -41,12 +41,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = TarParserTest.class.getResourceAsStream(
-                "/test-documents/test-documents.tar");
-        try {
+        try (InputStream stream = TarParserTest.class.getResourceAsStream(
+                "/test-documents/test-documents.tar")) {
             parser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals("application/x-tar", metadata.get(Metadata.CONTENT_TYPE));
@@ -81,13 +78,10 @@
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
 
-       InputStream stream = ZipParserTest.class.getResourceAsStream(
-               "/test-documents/test-documents.tar");
-       try {
+        try (InputStream stream = ZipParserTest.class.getResourceAsStream(
+                "/test-documents/test-documents.tar")) {
-           parser.parse(stream, handler, metadata, trackingContext);
+            parser.parse(stream, handler, metadata, trackingContext);
-       } finally {
-           stream.close();
-       }
+        }
        
        // Should have found all 9 documents, but not the directory
        assertEquals(9, tracker.filenames.size());
Index: tika-parsers/src/test/java/org/apache/tika/parser/prt/PRTParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/prt/PRTParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/prt/PRTParserTest.java	(revision )
@@ -33,8 +33,7 @@
      */
     @Test
     public void testPRTParserBasics() throws Exception {
-       InputStream input = getResourceAsStream("/test-documents/testCADKEY.prt");
-       try  {
+       try (InputStream input = getResourceAsStream("/test-documents/testCADKEY.prt")) {
           Metadata metadata = new Metadata();
           ContentHandler handler = new BodyContentHandler();
           new PRTParser().parse(input, handler, metadata);
@@ -43,14 +42,14 @@
 
           // This file has a date
           assertEquals("2011-06-20T16:54:00",
-                metadata.get(TikaCoreProperties.CREATED));
+                  metadata.get(TikaCoreProperties.CREATED));
           assertEquals("2011-06-20T16:54:00",
-                metadata.get(Metadata.CREATION_DATE));
+                  metadata.get(Metadata.CREATION_DATE));
           // But no description
           assertEquals(null, metadata.get(TikaCoreProperties.DESCRIPTION));
 
           String contents = handler.toString();
-          
+
           assertContains("Front View", contents);
           assertContains("Back View", contents);
           assertContains("Bottom View", contents);
@@ -62,8 +61,6 @@
           assertContains("You've managed to extract all the text!", contents);
           assertContains("This is more text", contents);
           assertContains("Text Inside a PRT file", contents);
-       } finally {
-          input.close();
        }
     }
 
@@ -72,8 +69,7 @@
      */
     @Test
     public void testPRTParserComplex() throws Exception {
-       InputStream input = getResourceAsStream("/test-documents/testCADKEY2.prt");
-       try  {
+       try (InputStream input = getResourceAsStream("/test-documents/testCADKEY2.prt")) {
           Metadata metadata = new Metadata();
           ContentHandler handler = new BodyContentHandler();
           new PRTParser().parse(input, handler, metadata);
@@ -82,14 +78,14 @@
 
           // File has both a date and a description
           assertEquals("1997-04-01T08:59:00",
-                metadata.get(Metadata.DATE));
+                  metadata.get(Metadata.DATE));
           assertEquals("1997-04-01T08:59:00",
-                metadata.get(Metadata.CREATION_DATE));
+                  metadata.get(Metadata.CREATION_DATE));
           assertEquals("TIKA TEST PART DESCRIPTION INFORMATION\r\n",
-                metadata.get(TikaCoreProperties.DESCRIPTION));
+                  metadata.get(TikaCoreProperties.DESCRIPTION));
 
           String contents = handler.toString();
-          
+
           assertContains("ITEM", contents);
           assertContains("REQ.", contents);
           assertContains("DESCRIPTION", contents);
@@ -106,14 +102,12 @@
           assertContains("TIKA TEST DRAWING", contents);
           assertContains("TIKA LETTERS", contents);
           assertContains("5.82", contents);
-          assertContains("112"+'\u00b0', contents); // Degrees
+          assertContains("112" + '\u00b0', contents); // Degrees
           assertContains("TIKA TEST LETTER", contents);
           assertContains("17.11", contents);
-          assertContains('\u00d8'+"\ufffd2.000", contents); // Diameter
+          assertContains('\u00d8' + "\ufffd2.000", contents); // Diameter
           assertContains("Diameter", contents);
           assertContains("The Apache Tika toolkit", contents);
-       } finally {
-          input.close();
        }
     }
 }
Index: tika-parsers/src/test/java/org/apache/tika/sax/PhoneExtractingContentHandlerTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/sax/PhoneExtractingContentHandlerTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/sax/PhoneExtractingContentHandlerTest.java	(revision )
@@ -43,12 +43,8 @@
         // The PhoneExtractingContentHandler will examine any characters for phone numbers before passing them
         // to the underlying Handler.
         PhoneExtractingContentHandler handler = new PhoneExtractingContentHandler(new BodyContentHandler(), metadata);
-        InputStream stream = PhoneExtractingContentHandlerTest.class.getResourceAsStream("/test-documents/testPhoneNumberExtractor.odt");
-        try {
+        try (InputStream stream = PhoneExtractingContentHandlerTest.class.getResourceAsStream("/test-documents/testPhoneNumberExtractor.odt")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        }
-        finally {
-            stream.close();
         }
         String[] phoneNumbers = metadata.getValues("phonenumbers");
         assertContains("9498888888", phoneNumbers[0]);
Index: tika-parsers/src/test/java/org/apache/tika/parser/mat/MatParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/mat/MatParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/mat/MatParserTest.java	(revision )
@@ -39,12 +39,8 @@
         Metadata metadata = new Metadata();
         String path = "/test-documents/breidamerkurjokull_radar_profiles_2009.mat";
 
-        InputStream stream = MatParser.class.getResourceAsStream(path);
-
-        try {
+        try (InputStream stream = MatParser.class.getResourceAsStream(path)) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         // Check Metadata
@@ -73,12 +69,8 @@
         Metadata metadata = new Metadata();
         String path = "/test-documents/test_mat_text.mat";
 
-        InputStream stream = MatParser.class.getResourceAsStream(path);
-
-        try {
+        try (InputStream stream = MatParser.class.getResourceAsStream(path)) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         // Check Content
Index: tika-parsers/src/test/java/org/apache/tika/parser/executable/ExecutableParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/executable/ExecutableParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/executable/ExecutableParserTest.java	(revision )
@@ -30,9 +30,8 @@
 
     @Test
     public void testWin32Parser() throws Exception {
-        InputStream input = ExecutableParserTest.class.getResourceAsStream(
-                "/test-documents/testWindows-x86-32.exe");
-        try {
+        try (InputStream input = ExecutableParserTest.class.getResourceAsStream(
+                "/test-documents/testWindows-x86-32.exe")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new ExecutableParser().parse(input, handler, metadata, new ParseContext());
@@ -41,49 +40,44 @@
                     metadata.get(Metadata.CONTENT_TYPE));
             assertEquals("2012-05-13T13:40:11Z",
                     metadata.get(Metadata.CREATION_DATE));
-            
-            assertEquals(ExecutableParser.MACHINE_x86_32, 
+
+            assertEquals(ExecutableParser.MACHINE_x86_32,
                     metadata.get(ExecutableParser.MACHINE_TYPE));
-            assertEquals("Little", 
+            assertEquals("Little",
                   metadata.get(ExecutableParser.ENDIAN));
-            assertEquals("32", 
+            assertEquals("32",
                   metadata.get(ExecutableParser.ARCHITECTURE_BITS));
-            assertEquals("Windows", 
+            assertEquals("Windows",
                   metadata.get(ExecutableParser.PLATFORM));
 
             String content = handler.toString();
             assertEquals("", content); // No text yet
-        } finally {
-            input.close();
         }
     }
     
     @Test
     public void testElfParser_x86_32() throws Exception {
-       InputStream input = ExecutableParserTest.class.getResourceAsStream(
-             "/test-documents/testLinux-x86-32");
-     try {
+        try (InputStream input = ExecutableParserTest.class.getResourceAsStream(
+                "/test-documents/testLinux-x86-32")) {
-         Metadata metadata = new Metadata();
-         ContentHandler handler = new BodyContentHandler();
-         new ExecutableParser().parse(input, handler, metadata, new ParseContext());
+            Metadata metadata = new Metadata();
+            ContentHandler handler = new BodyContentHandler();
+            new ExecutableParser().parse(input, handler, metadata, new ParseContext());
 
-         assertEquals("application/x-executable",
-                 metadata.get(Metadata.CONTENT_TYPE));
-         
-         assertEquals(ExecutableParser.MACHINE_x86_32, 
-                 metadata.get(ExecutableParser.MACHINE_TYPE));
-         assertEquals("Little", 
-               metadata.get(ExecutableParser.ENDIAN));
-         assertEquals("32", 
-               metadata.get(ExecutableParser.ARCHITECTURE_BITS));
-//         assertEquals("Linux", 
+            assertEquals("application/x-executable",
+                    metadata.get(Metadata.CONTENT_TYPE));
+
+            assertEquals(ExecutableParser.MACHINE_x86_32,
+                    metadata.get(ExecutableParser.MACHINE_TYPE));
+            assertEquals("Little",
+                    metadata.get(ExecutableParser.ENDIAN));
+            assertEquals("32",
+                    metadata.get(ExecutableParser.ARCHITECTURE_BITS));
+//         assertEquals("Linux",
 //               metadata.get(ExecutableParser.PLATFORM));
 
-         String content = handler.toString();
-         assertEquals("", content); // No text yet
+            String content = handler.toString();
+            assertEquals("", content); // No text yet
-     } finally {
-         input.close();
-     }       
+        }
     }
 
 }
Index: tika-core/src/main/java/org/apache/tika/io/TikaInputStream.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/main/java/org/apache/tika/io/TikaInputStream.java	(revision 1696828)
+++ tika-core/src/main/java/org/apache/tika/io/TikaInputStream.java	(revision )
@@ -85,19 +85,16 @@
      * when you <em>don't</em> explicitly close the returned stream. The
      * recommended access pattern is:
      * <pre>
-     * TemporaryResources tmp = new TemporaryResources();
-     * try {
+     * try (TemporaryResources tmp = new TemporaryResources()) {
      *     TikaInputStream stream = TikaInputStream.get(..., tmp);
      *     // process stream but don't close it
-     * } finally {
-     *     tmp.close();
      * }
      * </pre>
      * <p>
      * The given stream instance will <em>not</em> be closed when the
-     * {@link TemporaryResources#close()} method is called. The caller
-     * is expected to explicitly close the original stream when it's no
-     * longer used.
+     * {@link TemporaryResources#close()} method is called by the
+     * try-with-resources statement. The caller is expected to explicitly
+     * close the original stream when it's no longer used.
      *
      * @since Apache Tika 0.10
      * @param stream normal input stream
@@ -131,17 +128,14 @@
      * <em>do</em> explicitly close the returned stream. The recommended
      * access pattern is:
      * <pre>
-     * TikaInputStream stream = TikaInputStream.get(...);
-     * try {
+     * try (TikaInputStream stream = TikaInputStream.get(...)) {
      *     // process stream
-     * } finally {
-     *     stream.close();
      * }
      * </pre>
      * <p>
      * The given stream instance will be closed along with any other resources
      * associated with the returned TikaInputStream instance when the
-     * {@link #close()} method is called.
+     * {@link #close()} method is called by the try-with-resources statement.
      *
      * @param stream normal input stream
      * @return a TikaInputStream instance
@@ -531,11 +525,8 @@
             } else {
                 // Spool the entire stream into a temporary file
                 file = tmp.createTemporaryFile();
-                OutputStream out = new FileOutputStream(file);
-                try {
+                try (OutputStream out = new FileOutputStream(file)) {
                     IOUtils.copy(in, out);
-                } finally {
-                    out.close();
                 }
 
                 // Create a new input stream and make sure it'll get closed
Index: tika-core/src/main/java/org/apache/tika/parser/NetworkParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/main/java/org/apache/tika/parser/NetworkParser.java	(revision 1696828)
+++ tika-core/src/main/java/org/apache/tika/parser/NetworkParser.java	(revision )
@@ -78,8 +78,7 @@
             Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         if ("telnet".equals(uri.getScheme())) {
-            final Socket socket = new Socket(uri.getHost(), uri.getPort());
-            try {
+            try (Socket socket = new Socket(uri.getHost(), uri.getPort())) {
                 new ParsingTask(stream, new FilterOutputStream(socket.getOutputStream()) {
                     @Override
                     public void close() throws IOException {
@@ -87,21 +86,16 @@
                     }
                 }).parse(
                         socket.getInputStream(), handler, metadata, context);
-            } finally {
-                socket.close();
             }
         } else {
             URL url = uri.toURL();
             URLConnection connection = url.openConnection();
             connection.setDoOutput(true);
             connection.connect();
-            InputStream input = connection.getInputStream();
-            try {
+            try (InputStream input = connection.getInputStream()) {
                 new ParsingTask(stream, connection.getOutputStream()).parse(
                         new CloseShieldInputStream(input),
                         handler, metadata, context);
-            } finally {
-                input.close();
             }
         }
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/crypto/Pkcs7ParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/crypto/Pkcs7ParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/crypto/Pkcs7ParserTest.java	(revision )
@@ -31,9 +31,8 @@
 
 public class Pkcs7ParserTest extends TikaTest {
     public void testDetachedSignature() throws Exception {
-        InputStream input = Pkcs7ParserTest.class.getResourceAsStream(
-                "/test-documents/testDetached.p7s");
-        try {
+        try (InputStream input = Pkcs7ParserTest.class.getResourceAsStream(
+                "/test-documents/testDetached.p7s")) {
             ContentHandler handler = new BodyContentHandler();
             Metadata metadata = new Metadata();
             new Pkcs7Parser().parse(input, handler, metadata, new ParseContext());
@@ -41,8 +40,6 @@
             fail("should not get NPE");
         } catch (TikaException te) {
             assertTrue(te.toString().contains("cannot parse detached pkcs7 signature"));
-        } finally {
-            input.close();
         }
     }
 }
Index: tika-core/src/test/java/org/apache/tika/language/LanguageIdentifierTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/test/java/org/apache/tika/language/LanguageIdentifierTest.java	(revision 1696828)
+++ tika-core/src/test/java/org/apache/tika/language/LanguageIdentifierTest.java	(revision )
@@ -173,12 +173,8 @@
     }
 
     private void writeTo(String language, Writer writer) throws IOException {
-        InputStream stream =
-            LanguageIdentifierTest.class.getResourceAsStream(language + ".test");
-        try {
+        try (InputStream stream = LanguageIdentifierTest.class.getResourceAsStream(language + ".test")) {
             IOUtils.copy(new InputStreamReader(stream, UTF_8), writer);
-        } finally {
-            stream.close();
         }
     }
 
Index: tika-example/src/main/java/org/apache/tika/example/LazyTextExtractorField.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-example/src/main/java/org/apache/tika/example/LazyTextExtractorField.java	(revision 1696828)
+++ tika-example/src/main/java/org/apache/tika/example/LazyTextExtractorField.java	(revision )
@@ -175,11 +175,8 @@
 
 		public void run() {
 			try {
-				InputStream stream = value.getStream();
-				try {
+				try (InputStream stream = value.getStream()) {
 					parser.parse(stream, handler, metadata, context);
-				} finally {
-					stream.close();
 				}
 			} catch (LinkageError e) {
 				// Capture and ignore
Index: tika-parsers/src/test/java/org/apache/tika/parser/strings/Latin1StringsParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/strings/Latin1StringsParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/strings/Latin1StringsParserTest.java	(revision )
@@ -56,12 +56,8 @@
         Parser parser = new Latin1StringsParser();
         ContentHandler handler = new BodyContentHandler();
 
-        InputStream stream = new ByteArrayInputStream(baos.toByteArray());
-
-        try {
+        try (InputStream stream = new ByteArrayInputStream(baos.toByteArray())) {
             parser.parse(stream, handler, new Metadata(), new ParseContext());
-        } finally {
-            stream.close();
         }
 
         String result = handler.toString();
Index: tika-parsers/src/test/java/org/apache/tika/parser/strings/StringsParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/strings/StringsParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/strings/StringsParserTest.java	(revision )
@@ -57,14 +57,10 @@
 		context.set(StringsConfig.class, stringsConfig);
 		context.set(FileConfig.class, fileConfig);
 
-		InputStream stream = StringsParserTest.class.getResourceAsStream(resource);
-
-		try {
+		try (InputStream stream = StringsParserTest.class.getResourceAsStream(resource)) {
 			parser.parse(stream, handler, metadata, context);
 		} catch (Exception e) {
 			e.printStackTrace();
-		} finally {
-			stream.close();
 		}
 
 		// Content
Index: tika-parsers/src/test/java/org/apache/tika/parser/AutoDetectParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/AutoDetectParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/AutoDetectParserTest.java	(revision )
@@ -82,16 +82,11 @@
      * @throws IOException
      */
     private void assertAutoDetect(TestParams tp) throws Exception {
-
-        InputStream input =
-            AutoDetectParserTest.class.getResourceAsStream(tp.resourceRealName);
-
+        try (InputStream input = AutoDetectParserTest.class.getResourceAsStream(tp.resourceRealName)) {
-        if (input == null) {
-            fail("Could not open stream from specified resource: "
-                    + tp.resourceRealName);
-        }
+            if (input == null) {
+                fail("Could not open stream from specified resource: "
+                        + tp.resourceRealName);
+            }
-
-        try {
             Metadata metadata = new Metadata();
             metadata.set(Metadata.RESOURCE_NAME_KEY, tp.resourceStatedName);
             metadata.set(Metadata.CONTENT_TYPE, tp.statedType);
@@ -102,11 +97,9 @@
                     tp.realType, metadata.get(Metadata.CONTENT_TYPE));
 
             if (tp.expectedContentFragment != null) {
-               assertTrue("Expected content not found: " + tp,
-                       handler.toString().contains(tp.expectedContentFragment));
+                assertTrue("Expected content not found: " + tp,
+                        handler.toString().contains(tp.expectedContentFragment));
             }
-        } finally {
-            input.close();
         }
     }
 
@@ -263,22 +256,17 @@
      */
     @Test
     public void testZipBombPrevention() throws Exception {
-        InputStream tgz = AutoDetectParserTest.class.getResourceAsStream(
-                "/test-documents/TIKA-216.tgz");
-        try {
+        try (InputStream tgz = AutoDetectParserTest.class.getResourceAsStream(
+                "/test-documents/TIKA-216.tgz")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler(-1);
             new AutoDetectParser(tika).parse(tgz, handler, metadata);
             fail("Zip bomb was not detected");
         } catch (TikaException e) {
             // expected
-        } finally {
-            tgz.close();
         }
-    
     }
 
-
     /**
      * Make sure XML parse errors don't trigger ZIP bomb detection.
      *
@@ -339,45 +327,40 @@
        
        // Have each file parsed, and check
        for (int i=0; i<testFiles.length; i++) {
-          String file = testFiles[i];
+           String file = testFiles[i];
-          InputStream input = AutoDetectParserTest.class.getResourceAsStream(
-                "/test-documents/"+file);
-
+           try (InputStream input = AutoDetectParserTest.class.getResourceAsStream(
+                   "/test-documents/" + file)) {
-          if (input == null) {
-             fail("Could not find test file " + file);
-          }
+               if (input == null) {
+                   fail("Could not find test file " + file);
+               }
-          
-          try {
-             Metadata metadata = new Metadata();
-             ContentHandler handler = new BodyContentHandler();
-             new AutoDetectParser(tika).parse(input, handler, metadata);
+               Metadata metadata = new Metadata();
+               ContentHandler handler = new BodyContentHandler();
+               new AutoDetectParser(tika).parse(input, handler, metadata);
 
-             assertEquals("Incorrect content type for " + file,
-                   mediaTypes[i].toString(), metadata.get(Metadata.CONTENT_TYPE));
+               assertEquals("Incorrect content type for " + file,
+                       mediaTypes[i].toString(), metadata.get(Metadata.CONTENT_TYPE));
 
-             // Check some of the common metadata
-             // Old style metadata
-             assertEquals("Test Artist", metadata.get(Metadata.AUTHOR));
-             assertEquals("Test Title", metadata.get(Metadata.TITLE));
-             // New style metadata
-             assertEquals("Test Artist", metadata.get(TikaCoreProperties.CREATOR));
-             assertEquals("Test Title", metadata.get(TikaCoreProperties.TITLE));
-             
-             // Check some of the XMPDM metadata
+               // Check some of the common metadata
+               // Old style metadata
+               assertEquals("Test Artist", metadata.get(Metadata.AUTHOR));
+               assertEquals("Test Title", metadata.get(Metadata.TITLE));
+               // New style metadata
+               assertEquals("Test Artist", metadata.get(TikaCoreProperties.CREATOR));
+               assertEquals("Test Title", metadata.get(TikaCoreProperties.TITLE));
+
+               // Check some of the XMPDM metadata
-             if (! file.endsWith(".opus")) {
+               if (!file.endsWith(".opus")) {
-                 assertEquals("Test Album", metadata.get(XMPDM.ALBUM));
-             }
-             assertEquals("Test Artist", metadata.get(XMPDM.ARTIST));
-             assertEquals("Stereo", metadata.get(XMPDM.AUDIO_CHANNEL_TYPE));
-             assertEquals("44100", metadata.get(XMPDM.AUDIO_SAMPLE_RATE));
-             
-             // Check some of the text
-             String content = handler.toString();
-             assertTrue(content.contains("Test Title"));
-             assertTrue(content.contains("Test Artist"));
+                   assertEquals("Test Album", metadata.get(XMPDM.ALBUM));
+               }
+               assertEquals("Test Artist", metadata.get(XMPDM.ARTIST));
+               assertEquals("Stereo", metadata.get(XMPDM.AUDIO_CHANNEL_TYPE));
+               assertEquals("44100", metadata.get(XMPDM.AUDIO_SAMPLE_RATE));
+
+               // Check some of the text
+               String content = handler.toString();
+               assertTrue(content.contains("Test Title"));
+               assertTrue(content.contains("Test Artist"));
-          } finally {
-             input.close();
-          }
+           }
        }
     }
     
Index: tika-app/src/main/java/org/apache/tika/gui/TikaGUI.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-app/src/main/java/org/apache/tika/gui/TikaGUI.java	(revision 1696828)
+++ tika-app/src/main/java/org/apache/tika/gui/TikaGUI.java	(revision )
@@ -304,11 +304,8 @@
     public void openFile(File file) {
         try {
             Metadata metadata = new Metadata();
-            TikaInputStream stream = TikaInputStream.get(file, metadata);
-            try {
+            try (TikaInputStream stream = TikaInputStream.get(file, metadata)) {
                 handleStream(stream, metadata);
-            } finally {
-                stream.close();
             }
         } catch (Throwable t) {
             handleError(file.getPath(), t);
@@ -318,11 +315,8 @@
     public void openURL(URL url) {
         try {
             Metadata metadata = new Metadata();
-            TikaInputStream stream = TikaInputStream.get(url, metadata);
-            try {
+            try (TikaInputStream stream = TikaInputStream.get(url, metadata)) {
                 handleStream(stream, metadata);
-            } finally {
-                stream.close();
             }
         } catch (Throwable t) {
             handleError(url.toString(), t);
@@ -477,8 +471,7 @@
         if (e.getEventType() == EventType.ACTIVATED) {
             try {
                 URL url = e.getURL();
-                InputStream stream = url.openStream();
-                try {
+                try (InputStream stream = url.openStream()) {
                     JEditorPane editor =
                         new JEditorPane("text/plain", IOUtils.toString(stream, UTF_8));
                     editor.setEditable(false);
@@ -493,8 +486,6 @@
                     dialog.add(new JScrollPane(editor));
                     dialog.pack();
                     dialog.setVisible(true);
-                } finally {
-                    stream.close();
                 }
             } catch (IOException exception) {
                 exception.printStackTrace();
Index: tika-server/src/main/java/org/apache/tika/server/resource/TikaResource.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-server/src/main/java/org/apache/tika/server/resource/TikaResource.java	(revision 1696828)
+++ tika-server/src/main/java/org/apache/tika/server/resource/TikaResource.java	(revision )
@@ -277,9 +277,8 @@
 
     public static void parse(Parser parser, Log logger, String path, InputStream inputStream,
                              ContentHandler handler, Metadata metadata, ParseContext parseContext) throws IOException {
-        inputStream = TikaInputStream.get(inputStream);
-        try {
-            parser.parse(inputStream, handler, metadata, parseContext);
+        try (TikaInputStream tikaInputStream = TikaInputStream.get(inputStream)) {
+            parser.parse(tikaInputStream, handler, metadata, parseContext);
         } catch (SAXException e) {
             throw new TikaServerParseException(e);
         } catch (EncryptedDocumentException e) {
@@ -296,8 +295,6 @@
                     path
             ), e);
             throw new TikaServerParseException(e);
-        } finally {
-            inputStream.close();
         }
     }
 
@@ -355,10 +352,8 @@
 
                 BodyContentHandler body = new BodyContentHandler(new RichTextContentHandler(writer));
 
-                try {
-                    parse(parser, logger, info.getPath(), is, body, metadata, context);
-                } finally {
-                    is.close();
+                try (InputStream inputStream = is) {
+                    parse(parser, logger, info.getPath(), inputStream, body, metadata, context);
                 }
             }
         };
Index: tika-parsers/src/main/java/org/apache/tika/parser/envi/EnviHeaderParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/envi/EnviHeaderParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/envi/EnviHeaderParser.java	(revision )
@@ -57,10 +57,9 @@
 
         // The following code was taken from the TXTParser
         // Automatically detect the character encoding
-        AutoDetectReader reader = new AutoDetectReader(
-                new CloseShieldInputStream(stream), metadata);
 
-        try {
+        try (AutoDetectReader reader = new AutoDetectReader(
+                new CloseShieldInputStream(stream), metadata)) {
             Charset charset = reader.getCharset();
             MediaType type = new MediaType(MediaType.TEXT_PLAIN, charset);
             // deprecated, see TIKA-431
@@ -78,10 +77,8 @@
                 xhtml.characters(line);
                 xhtml.endElement("p");
             }
-            
+
             xhtml.endDocument();
-        } finally {
-            reader.close();
         }
     }
 }
Index: tika-parsers/src/test/java/org/apache/tika/parser/pkg/ZipParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/pkg/ZipParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/pkg/ZipParserTest.java	(revision )
@@ -50,12 +50,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = ZipParserTest.class.getResourceAsStream(
-                "/test-documents/test-documents.zip");
-        try {
+        try (InputStream stream = ZipParserTest.class.getResourceAsStream(
+                "/test-documents/test-documents.zip")) {
             parser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals("application/zip", metadata.get(Metadata.CONTENT_TYPE));
@@ -90,13 +87,10 @@
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
 
-       InputStream stream = ZipParserTest.class.getResourceAsStream(
-               "/test-documents/test-documents.zip");
-       try {
+        try (InputStream stream = ZipParserTest.class.getResourceAsStream(
+                "/test-documents/test-documents.zip")) {
-           parser.parse(stream, handler, metadata, trackingContext);
+            parser.parse(stream, handler, metadata, trackingContext);
-       } finally {
-           stream.close();
-       }
+        }
        
        // Should have found all 9 documents
        assertEquals(9, tracker.filenames.size());
@@ -171,14 +165,11 @@
         context.set(Parser.class, parser);
         GatherRelIDsDocumentExtractor relIDs = new GatherRelIDsDocumentExtractor();
         context.set(EmbeddedDocumentExtractor.class, relIDs);
-        InputStream input = getResourceAsStream("/test-documents/testEmbedded.zip");
-        try {
+        try (InputStream input = getResourceAsStream("/test-documents/testEmbedded.zip")) {
-          parser.parse(input,
-                       new BodyContentHandler(),
-                       new Metadata(),
-                       context);
+            parser.parse(input,
+                    new BodyContentHandler(),
+                    new Metadata(),
+                    context);
-        } finally {
-            input.close();
         }
 
         assertTrue(relIDs.allRelIDs.contains("test1.txt"));
@@ -191,17 +182,14 @@
         factory.setEntryEncoding("SJIS");
         trackingContext.set(ArchiveStreamFactory.class, factory);
 
-        InputStream stream = TikaInputStream.get(Base64.decodeBase64(
+        try (InputStream stream = TikaInputStream.get(Base64.decodeBase64(
                 "UEsDBBQAAAAIAI+CvUCDo3+zIgAAACgAAAAOAAAAk/qWe4zqg4GDgi50"
-                + "eHRr2tj0qulsc2pzRHN609Gm7Y1OvFxNYLHJv6ZV97yCiQEAUEsBAh"
-                + "QLFAAAAAgAj4K9QIOjf7MiAAAAKAAAAA4AAAAAAAAAAAAgAAAAAAAA"
+                        + "eHRr2tj0qulsc2pzRHN609Gm7Y1OvFxNYLHJv6ZV97yCiQEAUEsBAh"
+                        + "QLFAAAAAgAj4K9QIOjf7MiAAAAKAAAAA4AAAAAAAAAAAAgAAAAAAAA"
-                + "AJP6lnuM6oOBg4IudHh0UEsFBgAAAAABAAEAPAAAAE4AAAAAAA=="));
-        try {
+                        + "AJP6lnuM6oOBg4IudHh0UEsFBgAAAAABAAEAPAAAAE4AAAAAAA=="))) {
             autoDetectParser.parse(
                     stream, new DefaultHandler(),
                     new Metadata(), trackingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals(1, tracker.filenames.size());
Index: tika-parsers/src/test/java/org/apache/tika/parser/ParsingReaderTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/ParsingReaderTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/ParsingReaderTest.java	(revision )
@@ -87,9 +87,8 @@
         Metadata metadata = new Metadata();
         InputStream stream = ParsingReaderTest.class.getResourceAsStream(
                 "/test-documents/testEXCEL.xls");
-        Reader reader = new ParsingReader(
-                new AutoDetectParser(), stream, metadata, new ParseContext());
-        try {
+        try (Reader reader = new ParsingReader(
+                new AutoDetectParser(), stream, metadata, new ParseContext())) {
             // Metadata should already be available
             assertEquals("Simple Excel document", metadata.get(TikaCoreProperties.TITLE));
             // Check that the internal buffering isn't broken
@@ -99,8 +98,6 @@
             assertEquals('i', (char) reader.read());
             assertEquals('l', (char) reader.read());
             assertEquals('1', (char) reader.read());
-        } finally {
-            reader.close();
         }
     }
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/pkg/Seven7ParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/pkg/Seven7ParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/pkg/Seven7ParserTest.java	(revision )
@@ -55,12 +55,9 @@
                 parser.getSupportedTypes(recursingContext).contains(TYPE_7ZIP));
         
         // Parse
-        InputStream stream = Seven7ParserTest.class.getResourceAsStream(
-                "/test-documents/test-documents.7z");
-        try {
+        try (InputStream stream = Seven7ParserTest.class.getResourceAsStream(
+                "/test-documents/test-documents.7z")) {
             parser.parse(stream, handler, metadata, recursingContext);
-        } finally {
-            stream.close();
         }
 
         assertEquals(TYPE_7ZIP.toString(), metadata.get(Metadata.CONTENT_TYPE));
@@ -95,13 +92,10 @@
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
 
-       InputStream stream = Seven7ParserTest.class.getResourceAsStream(
-               "/test-documents/test-documents.7z");
-       try {
+        try (InputStream stream = Seven7ParserTest.class.getResourceAsStream(
+                "/test-documents/test-documents.7z")) {
-           parser.parse(stream, handler, metadata, trackingContext);
+            parser.parse(stream, handler, metadata, trackingContext);
-       } finally {
-           stream.close();
-       }
+        }
        
        // Should have found all 9 documents, but not the directory
        assertEquals(9, tracker.filenames.size());
@@ -136,17 +130,14 @@
         Metadata metadata = new Metadata();
         
         // No password, will fail with EncryptedDocumentException
-        InputStream stream = Seven7ParserTest.class.getResourceAsStream(
-                "/test-documents/test7Z_protected_passTika.7z");
         boolean ex = false;
-        try {
+        try (InputStream stream = Seven7ParserTest.class.getResourceAsStream(
+                "/test-documents/test7Z_protected_passTika.7z")) {
             parser.parse(stream, handler, metadata, recursingContext);
             fail("Shouldn't be able to read a password protected 7z without the password");
         } catch (EncryptedDocumentException e) {
             // Good
             ex = true;
-        } finally {
-            stream.close();
         }
         
         assertTrue("test no password", ex);
@@ -162,9 +153,8 @@
             }
         });
         handler = new BodyContentHandler();
-        stream = Seven7ParserTest.class.getResourceAsStream(
-                "/test-documents/test7Z_protected_passTika.7z");
-        try {
+        try (InputStream stream = Seven7ParserTest.class.getResourceAsStream(
+                "/test-documents/test7Z_protected_passTika.7z")) {
             parser.parse(stream, handler, metadata, recursingContext);
             fail("Shouldn't be able to read a password protected 7z with wrong password");
         } catch (TikaException e) {
@@ -172,8 +162,6 @@
             //if JCE is not installed, the message will include
             // "(do you have the JCE  Unlimited Strength Jurisdiction Policy Files installed?")
             ex = true;
-        } finally {
-            stream.close();
         }
         assertTrue("TikaException for bad password", ex);
         // Will be empty
@@ -189,12 +177,9 @@
                 }
             });
             handler = new BodyContentHandler();
-            stream = Seven7ParserTest.class.getResourceAsStream(
-                    "/test-documents/test7Z_protected_passTika.7z");
-            try {
+            try (InputStream stream = Seven7ParserTest.class.getResourceAsStream(
+                    "/test-documents/test7Z_protected_passTika.7z")) {
                 parser.parse(stream, handler, metadata, recursingContext);
-            } finally {
-                stream.close();
             }
 
             assertEquals(TYPE_7ZIP.toString(), metadata.get(Metadata.CONTENT_TYPE));
@@ -218,14 +203,11 @@
                 }
             });
             handler = new BodyContentHandler();
-            stream = Seven7ParserTest.class.getResourceAsStream(
-                    "/test-documents/test7Z_protected_passTika.7z");
-            try {
+            try (InputStream stream = Seven7ParserTest.class.getResourceAsStream(
+                    "/test-documents/test7Z_protected_passTika.7z")) {
                 parser.parse(stream, handler, metadata, recursingContext);
             } catch (TikaException e) {
                 ioe = true;
-            } finally {
-                stream.close();
             }
             assertTrue("IOException because JCE was not installed", ioe);
         }
Index: tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java	(revision )
@@ -45,9 +45,8 @@
     @Test
     @SuppressWarnings("deprecation") // Checks legacy Tika-1.0 style metadata keys
     public void testExcelParser() throws Exception {
-        InputStream input = ExcelParserTest.class.getResourceAsStream(
-                "/test-documents/testEXCEL.xls");
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream(
+                "/test-documents/testEXCEL.xls")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             ParseContext context = new ParseContext();
@@ -77,16 +76,13 @@
             assertNotContained("9.0", content);
             assertContains("196", content);
             assertNotContained("196.0", content);
-        } finally {
-            input.close();
         }
     }
 
     @Test
     public void testExcelParserFormatting() throws Exception {
-        InputStream input = ExcelParserTest.class.getResourceAsStream(
-                "/test-documents/testEXCEL-formats.xls");
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream(
+                "/test-documents/testEXCEL-formats.xls")) {
             Metadata metadata = new Metadata();
             ParseContext context = new ParseContext();
             context.set(Locale.class, Locale.US);
@@ -150,16 +146,13 @@
              assertContains("At 4:20 AM on Thursday May 17, 2007", content);
              **************************************************************************/
 
-        } finally {
-            input.close();
         }
     }
 
     @Test
     public void testExcelParserPassword() throws Exception {
-        InputStream input = ExcelParserTest.class.getResourceAsStream(
-                "/test-documents/testEXCEL_protected_passtika.xls");
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream(
+                "/test-documents/testEXCEL_protected_passtika.xls")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             ParseContext context = new ParseContext();
@@ -168,14 +161,11 @@
             fail("Document is encrypted, shouldn't parse");
         } catch (EncryptedDocumentException e) {
             // Good
-        } finally {
-            input.close();
         }
 
         // Try again, this time with the password
-        input = ExcelParserTest.class.getResourceAsStream(
-                "/test-documents/testEXCEL_protected_passtika.xls");
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream(
+                "/test-documents/testEXCEL_protected_passtika.xls")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             ParseContext context = new ParseContext();
@@ -199,8 +189,6 @@
             String content = handler.toString();
             assertContains("This is an Encrypted Excel spreadsheet", content);
             assertNotContained("9.0", content);
-        } finally {
-            input.close();
         }
     }
 
@@ -209,9 +197,8 @@
      */
     @Test
     public void testExcelParserCharts() throws Exception {
-        InputStream input = ExcelParserTest.class.getResourceAsStream(
-                "/test-documents/testEXCEL-charts.xls");
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream(
+                "/test-documents/testEXCEL-charts.xls")) {
             Metadata metadata = new Metadata();
             ParseContext context = new ParseContext();
             context.set(Locale.class, Locale.US);
@@ -240,16 +227,13 @@
             // The third sheet has some text
             assertContains("Sheet2", content);
             assertContains("dingdong", content);
-        } finally {
-            input.close();
         }
     }
 
     @Test
     public void testJXL() throws Exception {
-        InputStream input = ExcelParserTest.class.getResourceAsStream(
-                "/test-documents/jxl.xls");
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream(
+                "/test-documents/jxl.xls")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler(-1);
             ParseContext context = new ParseContext();
@@ -261,16 +245,13 @@
                     metadata.get(Metadata.CONTENT_TYPE));
             String content = handler.toString();
             assertContains("Number Formats", content);
-        } finally {
-            input.close();
         }
     }
 
     @Test
     public void testWorksSpreadsheet70() throws Exception {
-        InputStream input = ExcelParserTest.class.getResourceAsStream(
-                "/test-documents/testWORKSSpreadsheet7.0.xlr");
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream(
+                "/test-documents/testWORKSSpreadsheet7.0.xlr")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler(-1);
             ParseContext context = new ParseContext();
@@ -279,8 +260,6 @@
 
             String content = handler.toString();
             assertContains("Microsoft Works", content);
-        } finally {
-            input.close();
         }
     }
 
@@ -294,18 +273,15 @@
         Detector detector = new DefaultDetector();
         AutoDetectParser parser = new AutoDetectParser();
 
-        InputStream input = ExcelParserTest.class.getResourceAsStream(
-                "/test-documents/testEXCEL.xlsb");
         Metadata m = new Metadata();
         m.add(Metadata.RESOURCE_NAME_KEY, "excel.xlsb");
 
         // Should be detected correctly
-        MediaType type = null;
-        try {
+        MediaType type;
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream(
+                "/test-documents/testEXCEL.xlsb")) {
             type = detector.detect(input, m);
             assertEquals("application/vnd.ms-excel.sheet.binary.macroenabled.12", type.toString());
-        } finally {
-            input.close();
         }
 
         // OfficeParser won't handle it
@@ -315,9 +291,7 @@
         assertEquals(false, (new OOXMLParser()).getSupportedTypes(new ParseContext()).contains(type));
 
         // AutoDetectParser doesn't break on it
-        input = ExcelParserTest.class.getResourceAsStream("/test-documents/testEXCEL.xlsb");
-
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream("/test-documents/testEXCEL.xlsb")) {
             ContentHandler handler = new BodyContentHandler(-1);
             ParseContext context = new ParseContext();
             context.set(Locale.class, Locale.US);
@@ -325,8 +299,6 @@
 
             String content = handler.toString();
             assertEquals("", content);
-        } finally {
-            input.close();
         }
     }
 
@@ -337,30 +309,23 @@
     public void testExcel95() throws Exception {
         Detector detector = new DefaultDetector();
         AutoDetectParser parser = new AutoDetectParser();
-        InputStream input;
         MediaType type;
         Metadata m;
 
         // First try detection of Excel 5
         m = new Metadata();
         m.add(Metadata.RESOURCE_NAME_KEY, "excel_5.xls");
-        input = ExcelParserTest.class.getResourceAsStream("/test-documents/testEXCEL_5.xls");
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream("/test-documents/testEXCEL_5.xls")) {
             type = detector.detect(input, m);
             assertEquals("application/vnd.ms-excel", type.toString());
-        } finally {
-            input.close();
         }
 
         // Now Excel 95
         m = new Metadata();
         m.add(Metadata.RESOURCE_NAME_KEY, "excel_95.xls");
-        input = ExcelParserTest.class.getResourceAsStream("/test-documents/testEXCEL_95.xls");
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream("/test-documents/testEXCEL_95.xls")) {
             type = detector.detect(input, m);
             assertEquals("application/vnd.ms-excel", type.toString());
-        } finally {
-            input.close();
         }
 
         // OfficeParser can handle it
@@ -372,8 +337,7 @@
 
         // Parse the Excel 5 file
         m = new Metadata();
-        input = ExcelParserTest.class.getResourceAsStream("/test-documents/testEXCEL_5.xls");
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream("/test-documents/testEXCEL_5.xls")) {
             ContentHandler handler = new BodyContentHandler(-1);
             ParseContext context = new ParseContext();
             context.set(Locale.class, Locale.US);
@@ -396,14 +360,11 @@
             // Metadata was also fetched
             assertEquals("Simple Excel document", m.get(TikaCoreProperties.TITLE));
             assertEquals("Keith Bennett", m.get(TikaCoreProperties.CREATOR));
-        } finally {
-            input.close();
         }
 
         // Parse the Excel 95 file
         m = new Metadata();
-        input = ExcelParserTest.class.getResourceAsStream("/test-documents/testEXCEL_95.xls");
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream("/test-documents/testEXCEL_95.xls")) {
             ContentHandler handler = new BodyContentHandler(-1);
             ParseContext context = new ParseContext();
             context.set(Locale.class, Locale.US);
@@ -419,8 +380,6 @@
             // Metadata was also fetched
             assertEquals(null, m.get(TikaCoreProperties.TITLE));
             assertEquals("Marco Quaranta", m.get(Office.LAST_AUTHOR));
-        } finally {
-            input.close();
         }
     }
 
@@ -429,17 +388,14 @@
      */
     @Test
     public void testCustomProperties() throws Exception {
-        InputStream input = ExcelParserTest.class.getResourceAsStream(
-                "/test-documents/testEXCEL_custom_props.xls");
         Metadata metadata = new Metadata();
 
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream(
+                "/test-documents/testEXCEL_custom_props.xls")) {
             ContentHandler handler = new BodyContentHandler(-1);
             ParseContext context = new ParseContext();
             context.set(Locale.class, Locale.US);
             new OfficeParser().parse(input, handler, metadata, context);
-        } finally {
-            input.close();
         }
 
         assertEquals("application/vnd.ms-excel", metadata.get(Metadata.CONTENT_TYPE));
@@ -457,10 +413,8 @@
 
 	@Test
     public void testHeaderAndFooterExtraction() throws Exception {
-        InputStream input = ExcelParserTest.class.getResourceAsStream(
-                "/test-documents/testEXCEL_headers_footers.xls");
-        
-        try {
+        try (InputStream input = ExcelParserTest.class.getResourceAsStream(
+                "/test-documents/testEXCEL_headers_footers.xls")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             ParseContext context = new ParseContext();
@@ -484,8 +438,6 @@
             assertContains("Footer - Corporate Spreadsheet", content);
             assertContains("Footer - For Internal Use Only", content);
             assertContains("Footer - Author: John Smith", content);
-        } finally {
-            input.close();
         }
     }
 }
Index: tika-parsers/src/test/java/org/apache/tika/parser/netcdf/NetCDFParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/netcdf/NetCDFParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/netcdf/NetCDFParserTest.java	(revision )
@@ -42,12 +42,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = NetCDFParser.class
-                .getResourceAsStream("/test-documents/sresa1b_ncar_ccsm3_0_run1_200001.nc");
-        try {
+        try (InputStream stream = NetCDFParser.class
+                .getResourceAsStream("/test-documents/sresa1b_ncar_ccsm3_0_run1_200001.nc")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertEquals(metadata.get(TikaCoreProperties.TITLE),
Index: tika-core/src/test/java/org/apache/tika/TypeDetectionBenchmark.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/test/java/org/apache/tika/TypeDetectionBenchmark.java	(revision 1696828)
+++ tika-core/src/test/java/org/apache/tika/TypeDetectionBenchmark.java	(revision )
@@ -47,11 +47,10 @@
         if (file.isHidden()) {
             // ignore
         } else if (file.isFile()) {
-            InputStream input = new FileInputStream(file);
-            try {
+            try (InputStream input = new FileInputStream(file)) {
                 byte[] content = IOUtils.toByteArray(input);
                 String type =
-                    tika.detect(new ByteArrayInputStream(content));
+                        tika.detect(new ByteArrayInputStream(content));
                 long start = System.currentTimeMillis();
                 for (int i = 0; i < 1000; i++) {
                     tika.detect(new ByteArrayInputStream(content));
@@ -60,8 +59,6 @@
                         Locale.ROOT,
                         "%6dns per Tika.detect(%s) = %s%n",
                         System.currentTimeMillis() - start, file, type);
-            } finally {
-                input.close();
             }
         } else if (file.isDirectory()) {
             for (File child : file.listFiles()) {
Index: tika-parsers/src/test/java/org/apache/tika/parser/isatab/ISArchiveParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/isatab/ISArchiveParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/isatab/ISArchiveParserTest.java	(revision )
@@ -41,13 +41,8 @@
 		ContentHandler handler = new BodyContentHandler();
 		Metadata metadata = new Metadata();
 		ParseContext context = new ParseContext();
-		InputStream stream = null;
-		try {
-			stream = ISArchiveParserTest.class.getResourceAsStream(path);
+		try (InputStream stream = ISArchiveParserTest.class.getResourceAsStream(path)) {
 			parser.parse(stream, handler, metadata, context);
-		}
-		finally {
-			stream.close();
 		}
 		
 		// INVESTIGATION
Index: tika-parsers/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java	(revision )
@@ -103,12 +103,9 @@
                  return null;
              }
 
-             InputStream stream = zip.getInputStream(entry);
-             try {
+              try (InputStream stream = zip.getInputStream(entry)) {
-                return detectType(stream);
+                  return detectType(stream);
-             } finally {
-                 stream.close();
-             }
+              }
           } catch (IOException e) {
              return null;
           }
Index: tika-core/src/main/java/org/apache/tika/extractor/ParserContainerExtractor.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/main/java/org/apache/tika/extractor/ParserContainerExtractor.java	(revision 1696828)
+++ tika-core/src/main/java/org/apache/tika/extractor/ParserContainerExtractor.java	(revision )
@@ -122,11 +122,8 @@
                     File file = tis.getFile();
 
                     // Let the handler process the embedded resource
-                    InputStream input = TikaInputStream.get(file);
-                    try {
+                    try (InputStream input = TikaInputStream.get(file)) {
                         handler.handle(filename, type, input);
-                    } finally {
-                        input.close();
                     }
 
                     // Recurse
Index: tika-parsers/src/test/java/org/apache/tika/parser/microsoft/PublisherParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/microsoft/PublisherParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/microsoft/PublisherParserTest.java	(revision )
@@ -32,9 +32,8 @@
 
     @Test
     public void testPublisherParser() throws Exception {
-        InputStream input = PublisherParserTest.class.getResourceAsStream(
-                "/test-documents/testPUBLISHER.pub");
-        try {
+        try (InputStream input = PublisherParserTest.class.getResourceAsStream(
+                "/test-documents/testPUBLISHER.pub")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new OfficeParser().parse(input, handler, metadata, new ParseContext());
@@ -48,8 +47,6 @@
             String content = handler.toString();
             assertContains("0123456789", content);
             assertContains("abcdef", content);
-        } finally {
-            input.close();
         }
     }
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/ibooks/iBooksParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/ibooks/iBooksParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/ibooks/iBooksParserTest.java	(revision )
@@ -32,9 +32,8 @@
 
     @Test
     public void testiBooksParser() throws Exception {
-        InputStream input = iBooksParserTest.class.getResourceAsStream(
-                "/test-documents/testiBooks.ibooks");
-        try {
+        try (InputStream input = iBooksParserTest.class.getResourceAsStream(
+                "/test-documents/testiBooks.ibooks")) {
             Metadata metadata = new Metadata();
             ContentHandler handler = new BodyContentHandler();
             new EpubParser().parse(input, handler, metadata, new ParseContext());
@@ -57,8 +56,6 @@
             assertContains("Table data", content);
             assertContains("Lorem ipsum dolor rutur amet", content);
             */
-        } finally {
-            input.close();
         }
     }
 
Index: tika-parsers/src/main/java/org/apache/tika/parser/txt/TXTParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/txt/TXTParser.java	(revision 1696828)
+++ tika-parsers/src/main/java/org/apache/tika/parser/txt/TXTParser.java	(revision )
@@ -69,10 +69,9 @@
             Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         // Automatically detect the character encoding
-        AutoDetectReader reader = new AutoDetectReader(
+        try (AutoDetectReader reader = new AutoDetectReader(
                 new CloseShieldInputStream(stream), metadata,
-                context.get(ServiceLoader.class, LOADER));
-        try {
+                context.get(ServiceLoader.class, LOADER))) {
             Charset charset = reader.getCharset();
             MediaType type = new MediaType(MediaType.TEXT_PLAIN, charset);
             metadata.set(Metadata.CONTENT_TYPE, type.toString());
@@ -93,8 +92,6 @@
             xhtml.endElement("p");
 
             xhtml.endDocument();
-        } finally {
-            reader.close();
         }
     }
 
Index: tika-parsers/src/test/java/org/apache/tika/parser/dif/DIFParserTest.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/dif/DIFParserTest.java	(revision 1696828)
+++ tika-parsers/src/test/java/org/apache/tika/parser/dif/DIFParserTest.java	(revision )
@@ -16,10 +16,6 @@
  */
 package org.apache.tika.parser.dif;
 
-import static org.junit.Assert.assertEquals;
-
-import java.io.InputStream;
-
 import org.apache.tika.TikaTest;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.parser.ParseContext;
@@ -28,6 +24,10 @@
 import org.junit.Test;
 import org.xml.sax.ContentHandler;
 
+import java.io.InputStream;
+
+import static org.junit.Assert.assertEquals;
+
 public class DIFParserTest extends TikaTest {
 
 	@Test
@@ -36,12 +36,9 @@
         ContentHandler handler = new BodyContentHandler();
         Metadata metadata = new Metadata();
 
-        InputStream stream = DIFParser.class
-                .getResourceAsStream("/test-documents/Zamora2010.dif");
-        try {
+        try (InputStream stream = DIFParser.class.getResourceAsStream(
+                "/test-documents/Zamora2010.dif")) {
             parser.parse(stream, handler, metadata, new ParseContext());
-        } finally {
-            stream.close();
         }
 
         assertEquals(metadata.get("DIF-Entry_ID"),"00794186-48f9-11e3-9dcb-00c0f03d5b7c");
Index: tika-core/src/main/java/org/apache/tika/parser/external/ExternalParser.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tika-core/src/main/java/org/apache/tika/parser/external/ExternalParser.java	(revision 1696828)
+++ tika-core/src/main/java/org/apache/tika/parser/external/ExternalParser.java	(revision )
@@ -238,8 +238,7 @@
      */
     private void extractOutput(InputStream stream, XHTMLContentHandler xhtml)
             throws SAXException, IOException {
-        Reader reader = new InputStreamReader(stream, UTF_8);
-        try {
+        try (Reader reader = new InputStreamReader(stream, UTF_8)) {
             xhtml.startDocument();
             xhtml.startElement("p");
             char[] buffer = new char[1024];
@@ -248,8 +247,6 @@
             }
             xhtml.endElement("p");
             xhtml.endDocument();
-        } finally {
-            reader.close();
         }
     }
 
