git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1816189 13f79535-47bb-0310-9956-ffa450edef68tags/REL_4_0_0_FINAL
@@ -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()); |
@@ -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 |
@@ -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); | |||
} | |||
} | |||
@@ -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); | |||
} | |||
} | |||
@@ -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(); | |||
} |
@@ -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); | |||
} | |||
} | |||