throw IOException if getInputStream fails

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894848 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2021-11-08 20:49:45 +00:00
parent 7739885b2f
commit 2a6ef7e4ae
2 changed files with 7 additions and 7 deletions

View File

@ -71,27 +71,27 @@ import org.apache.poi.util.TempFile;
/**
* Returns zip entry.
* @return input stream
* @throws RuntimeException since POI 5.1.0,
* a RuntimeException can occur if the optional temp file has been removed
* @throws IOException since POI 5.2.0,
* an IOException can occur if the optional temp file has been removed (was a RuntimeException in POI 5.1.0)
* @see ZipInputStreamZipEntrySource#setThresholdBytesForTempFiles(int)
*/
public InputStream getInputStream() {
public InputStream getInputStream() throws IOException {
if (encryptedTempData != null) {
try {
return encryptedTempData.getInputStream();
} catch (IOException e) {
throw new RuntimeException("failed to read from encrypted temp data", e);
throw new IOException("failed to read from encrypted temp data", e);
}
} else if (tempFile != null) {
try {
return new FileInputStream(tempFile);
} catch (FileNotFoundException e) {
throw new RuntimeException("temp file " + tempFile.getAbsolutePath() + " is missing");
throw new IOException("temp file " + tempFile.getAbsolutePath() + " is missing");
}
} else if (data != null) {
return new UnsynchronizedByteArrayInputStream(data);
} else {
throw new RuntimeException("Cannot retrieve data from Zip Entry, probably because the Zip Entry was closed before the data was requested.");
throw new IOException("Cannot retrieve data from Zip Entry, probably because the Zip Entry was closed before the data was requested.");
}
}

View File

@ -107,7 +107,7 @@ public class ZipInputStreamZipEntrySource implements ZipEntrySource {
}
@Override
public InputStream getInputStream(ZipArchiveEntry zipEntry) {
public InputStream getInputStream(ZipArchiveEntry zipEntry) throws IOException {
assert (zipEntry instanceof ZipArchiveFakeEntry);
return ((ZipArchiveFakeEntry)zipEntry).getInputStream();
}