diff --git a/src/ooxml/java/org/apache/poi/poifs/crypt/temp/SXSSFWorkbookWithCustomZipEntrySource.java b/src/ooxml/java/org/apache/poi/poifs/crypt/temp/SXSSFWorkbookWithCustomZipEntrySource.java index 54600684ec..aeb35154a8 100644 --- a/src/ooxml/java/org/apache/poi/poifs/crypt/temp/SXSSFWorkbookWithCustomZipEntrySource.java +++ b/src/ooxml/java/org/apache/poi/poifs/crypt/temp/SXSSFWorkbookWithCustomZipEntrySource.java @@ -46,11 +46,8 @@ public class SXSSFWorkbookWithCustomZipEntrySource extends SXSSFWorkbook { EncryptedTempData tempData = new EncryptedTempData(); ZipEntrySource source = null; try { - OutputStream os = tempData.getOutputStream(); - try { + try (OutputStream os = tempData.getOutputStream()) { getXSSFWorkbook().write(os); - } finally { - IOUtils.closeQuietly(os); } // provide ZipEntrySource to poi which decrypts on the fly source = AesZipFileZipEntrySource.createZipEntrySource(tempData.getInputStream()); diff --git a/src/ooxml/java/org/apache/poi/ss/usermodel/WorkbookFactory.java b/src/ooxml/java/org/apache/poi/ss/usermodel/WorkbookFactory.java index 5bbe155063..1a4c2cb1d5 100644 --- a/src/ooxml/java/org/apache/poi/ss/usermodel/WorkbookFactory.java +++ b/src/ooxml/java/org/apache/poi/ss/usermodel/WorkbookFactory.java @@ -250,15 +250,8 @@ public class WorkbookFactory { throw new FileNotFoundException(file.toString()); } - try { - NPOIFSFileSystem fs = new NPOIFSFileSystem(file, readOnly); - try { - return create(fs, password); - } catch (RuntimeException e) { - // ensure that the file-handle is closed again - IOUtils.closeQuietly(fs); - throw e; - } + try (NPOIFSFileSystem fs = new NPOIFSFileSystem(file, readOnly)) { + return create(fs, password); } catch(OfficeXmlFileException e) { // opening as .xls failed => try opening as .xlsx OPCPackage pkg = OPCPackage.open(file, readOnly ? PackageAccess.READ : PackageAccess.READ_WRITE); // NOSONAR diff --git a/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java b/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java index e3ac6d22a1..b4f2024a24 100644 --- a/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java +++ b/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java @@ -87,14 +87,10 @@ public class XSSFBReader extends XSSFReader { * @throws IOException when there's a problem with the workbook part's stream */ public String getAbsPathMetadata() throws IOException { - InputStream is = null; - try { - is = workbookPart.getInputStream(); - PathExtractor p = new PathExtractor(workbookPart.getInputStream()); + try (InputStream is = workbookPart.getInputStream()) { + PathExtractor p = new PathExtractor(is); p.parse(); return p.getPath(); - } finally { - IOUtils.closeQuietly(is); } } diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFObjectData.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFObjectData.java index e54e25fd5f..c20d8d44cc 100644 --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFObjectData.java +++ b/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFObjectData.java @@ -171,14 +171,9 @@ public class XSSFObjectData extends XSSFSimpleShape implements ObjectData { } @Override - @SuppressWarnings("resource") public DirectoryEntry getDirectory() throws IOException { - InputStream is = null; - try { - is = getObjectPart().getInputStream(); + try (InputStream is = getObjectPart().getInputStream()) { return new POIFSFileSystem(is).getRoot(); - } finally { - IOUtils.closeQuietly(is); } } diff --git a/src/scratchpad/src/org/apache/poi/hemf/record/HemfText.java b/src/scratchpad/src/org/apache/poi/hemf/record/HemfText.java index 87a7b46988..6d3a1b297d 100644 --- a/src/scratchpad/src/org/apache/poi/hemf/record/HemfText.java +++ b/src/scratchpad/src/org/apache/poi/hemf/record/HemfText.java @@ -230,14 +230,10 @@ public class HemfText { String getText(Charset charset) throws IOException { StringBuilder sb = new StringBuilder(); - Reader r = null; - try { - r = new InputStreamReader(new ByteArrayInputStream(rawTextBytes), charset); + try (Reader r = new InputStreamReader(new ByteArrayInputStream(rawTextBytes), charset)) { for (int i = 0; i < numChars; i++) { sb.appendCodePoint(readCodePoint(r)); } - } finally { - IOUtils.closeQuietly(r); } return sb.toString(); } diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java index f3495407b3..eb95264694 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java +++ b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java @@ -179,10 +179,8 @@ public class HSLFSlideShowEncrypted implements Closeable { Decryptor dec = getEncryptionInfo().getDecryptor(); dec.setChunkSize(-1); - LittleEndianByteArrayInputStream lei = new LittleEndianByteArrayInputStream(docstream, offset); // NOSONAR - ChunkedCipherInputStream ccis = null; - try { - ccis = (ChunkedCipherInputStream)dec.getDataStream(lei, docstream.length-offset, 0); + try (LittleEndianByteArrayInputStream lei = new LittleEndianByteArrayInputStream(docstream, offset); + ChunkedCipherInputStream ccis = (ChunkedCipherInputStream)dec.getDataStream(lei, docstream.length-offset, 0)) { ccis.initCipherForBlock(persistId); // decrypt header and read length to be decrypted @@ -193,9 +191,6 @@ public class HSLFSlideShowEncrypted implements Closeable { } catch (Exception e) { throw new EncryptedPowerPointFileException(e); - } finally { - IOUtils.closeQuietly(ccis); - IOUtils.closeQuietly(lei); } } @@ -288,10 +283,9 @@ public class HSLFSlideShowEncrypted implements Closeable { return; } - LittleEndianByteArrayOutputStream los = new LittleEndianByteArrayOutputStream(pictstream, offset); // NOSONAR ChunkedCipherOutputStream ccos = null; - try { + try (LittleEndianByteArrayOutputStream los = new LittleEndianByteArrayOutputStream(pictstream, offset)) { Encryptor enc = getEncryptionInfo().getEncryptor(); enc.setChunkSize(-1); ccos = enc.getDataStream(los, 0); @@ -362,7 +356,6 @@ public class HSLFSlideShowEncrypted implements Closeable { throw new EncryptedPowerPointFileException(e); } finally { IOUtils.closeQuietly(ccos); - IOUtils.closeQuietly(los); } }